精华内容
下载资源
问答
  • 之前的博客中介绍过利用MATLAB可视化图像特征,因为最近在看《深度学习21天实战caffe》,里面有一章节是关于可视化的,所以把可视化mnist数据集的代码共享一下,在这里要感谢赵永科老师clc; clear; close all; image...

    之前的博客中介绍过利用MATLAB可视化图像特征,因为最近在看《深度学习21天实战caffe》,里面有一章节是关于可视化的,所以把可视化mnist数据集的代码共享一下,在这里要感谢赵永科老师

    clc;
    clear;
    close all;
    image_file_name='t10k-images.idx3-ubyte';
    index_file_name='t10k-labels.idx1-ubyte';
    
    fid1=fopen(image_file_name,'rb');
    fid2=fopen(index_file_name,'rb');
    
    image_data=fread(fid1,'uint8');
    index_data=fread(fid2,'uint8');
    
    fclose(fid1);
    fclose(fid2);
    
    image_data=image_data(17:end);
    index_data=index_data(9:end);
    image_buffer=zeros(28,28);
    
    for k=1:100:length(image_data)/28/28
        figure(10000);
        for t=1:10000
            image_buffer=reshape(image_data((k+t-2)*28*28+1:(k+t-1)*28*28),28,28)';
            subplot(100,100,t);
            imshow(uint8(image_buffer)');
            title(num2str(index_data(k+t-1)));
        end
        pause;
    end

    效果图如下:
    这里写图片描述

    在这里要感谢赵永科老师,代码是赵老师书里的。

    参考文献:《深度学习21天实战caffe》赵永科

    展开全文
  • 前面博客中介绍了怎么样利用MATLAB实现特征可视化,那一篇博客中介绍了一个对权重可视化的博客,本来不打算写这个博客了,但是我仔细看了那一篇博客,有点繁琐,所以我又整理了一下用MATLAB实现模型参数权重可视...

    前面博客中介绍了怎么样利用MATLAB实现特征图的可视化,那一篇博客中介绍了一个对权重可视化的博客,本来不打算写这个博客了,但是我仔细看了那一篇博客,有点繁琐,所以我又整理了一下用MATLAB实现模型参数权重可视化的部分,这一篇介绍对第一个卷积层权重可视化,下一篇博客介绍Alexnet中2到5卷积层的可视化,请大家注意,只有卷积层才能可视化。
    通过对训练后的模型进行可视化可以判断模型的优劣,怎么判断直接看博文后面的效果图,一看便知。直接放MATLAB代码,基于Alexnet,模型是前面介绍内容训练出来的模型,这个模型训练的不好,从参数权重图上就可以看出来,最后我会做一个好的和坏的第一个卷积层的参数可视化效果图,用于对比,如果想要可视化其它网络模型,只需要修改相应的部分就行,这里不再赘述。

    clc;
    clear;
    close all;
    addpath('../../../../matlab');
    caffe.set_mode_cpu();
    net=caffe.Net('alexnetdeploy.prototxt','cloth_iter_100000.caffemodel','test');
    net.layer_names      %显示都有哪些层
    net.blob_names    
    conv1_layer=net.layer_vec(1);  
    blob1=conv1_layer.params(1);    %注意只有卷积层是有参数的
    w=blob1.get_data();
    size(w)
    W=zeros(11*3,11*96);
    for u=1:3
        for v=1:96
            W(11*(u-1)+(1:11),11*(v-1)+(1:11))= w(:,:,u,v)';
        end
    end
    W=W-min(min(W));
    W=W/(max(max(W)))*255;     %从0-1转换到255
    W=uint8(W);
    W=[W,zeros(size(W,1),4*11)];
    WW=cat(3,W(1:11,:),W(12:22,:),W(23:33,:));
    W=zeros(10*12,10*12,3);
    for u=1:10
        for v=1:10
            W((u-1)*12+(1:11),(v-1)*12+(1:11),:)=WW(:,(u-1)*11*10+(v-1)*11+(1:11),:);
        end
    end
    W=uint8(W);
    figure;
    imshow(W);
    

    效果图:
    这里写图片描述

    上面这是一个不好的效果图,因为图案类似噪音太严重,不够平滑,不够美观。

    这里写图片描述

    这一张权重图是bvlc_reference_caffenet.caffemodel的权重图,这个效果图比较平滑,也可以观察到一部分权重负责提取高频灰度特征,而另一些负责提取低频彩色特征。哪个好哪个坏,一看便知,这也是可视化权重的一个重要作用。

    展开全文
  • 数据可视化 要使用plot函数来绘制图形,需要执行以下步骤: 通过指定要绘制函数的变量x的值的范围来定义x。 定义函数,y = f(x) 调用plot命令,如下:plot(x,y) 以下示例将演示该概念。下面绘制x的值范围是从0到...

    数据可视化

    要使用plot函数来绘制图形,需要执行以下步骤:

    • 通过指定要绘制函数的变量x的值的范围来定义x。
    • 定义函数,y = f(x)
    • 调用plot命令,如下:plot(x,y)

    以下示例将演示该概念。下面绘制x的值范围是从0到100,使用简单函数y = x,增量值为5。
    创建脚本文件并键入以下代码 -
    x = [0:5:100];
    y = x;
    plot(x, y)
    在图上添加标题,标签,网格线和缩放
    MATLAB允许沿x轴和y轴,网格线添加标题,标签,并且还可以调整轴来绘制图形。

    • xlabel和ylabel命令沿x轴和y轴生成标签。

    • title命令用于在图表上设置标题。

    • grid on命令用于将网格线放在图形上。

    • axis equal命令允许生成具有相同比例因子的绘图和两个轴上的空格。

    • axis square命令生成一个方形图。

    x = [0:0.01:10];
    y = sin(x);
    plot(x, y), xlabel(‘x’), ylabel(‘Sin(x)’), title(‘Sin(x) Graph’),
    grid on, axis equal

    在同一个图上绘制多个函数
    

    可以在同一个图上绘制多个图形。以下示例演示了这一概念 -
    示例
    创建脚本文件并键入以下代码 -
    x = [0 : 0.01: 10];
    y = sin(x);
    g = cos(x);
    plot(x, y, x, g, ‘.-’), legend(‘Sin(x)’, ‘Cos(x)’)
    legend函数的基本用法是:
    LEGEND(string1,string2,string3, …)
    分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。

    **在图上设置颜色**
    

    MATLAB提供了八个基本的颜色选项来绘制图形。 下表显示了颜色及其代码

    在这里插入图片描述
    设置轴刻度
    axis命令用来设置轴刻度。可以通过以下方式使用axis命令为x和y轴提供最小和最大值:
    axis ( [xmin xmax ymin ymax] )

    生成子图
    当在同一个图中创建一个绘图数组时,这些图中的每一个图称为子图。
    subplot命令用于创建子图。
    该命令的语法是 :
    subplot(m, n, p)
    其中,m和n是绘图数组的行数和列数,p表示放置指定图形的位置。
    使用subplot命令创建的每个曲线都可以有自己的特点。 以下示例演示了这一概念 -
    示例
    下面示例将生成两个区域块 -

    创建脚本文件并键入以下代码 -
    x = [0:0.01:5];
    y = exp(-1.5*x).sin(10x);
    subplot(1,2,1)
    plot(x,y), xlabel(‘x’),ylabel('exp(–1.5x)sin(10x)’),axis([0 5 -1 1])
    y = exp(-2
    x).sin(10x);
    subplot(1,2,2)
    plot(x,y),xlabel(‘x’),ylabel(‘exp(–2x)*sin(10x)’),axis([0 5 -1 1])
    MATLAB
    执行上面示例代码,得到以下结果 -
    在这里插入图片描述

    绘制条形图
    bar命令绘制二维条形图
    示例
    假设有10名学生,这些学生某次考试获得分数是:75,58,90,87,50,85,92,75,60和95,使用这此分数来绘制条形图如下。
    创建脚本文件并键入以下代码 -
    x = [1:10];
    y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95];
    bar(x,y), xlabel(‘Student’),ylabel(‘Score’),
    title(‘First Sem:’)
    print -deps graph.eps

    在这里插入图片描述

    绘制等高线
    两个变量的函数的轮廓线是一个曲线,函数有一个恒定值。等高线用于通过连接等于高于某一水平的点(如平均海平面)来创建轮廓图。
    MATLAB提供了绘制轮廓图的contour函数。
    示例:
    contour(theta0_vals, theta1_vals, J_vals, logspace(-2, 3, 20));
    %contour(X,Y,Z,v) 使用 X 和 Y 绘制 Z 的等高线图。V规定等高线的范围
    %logspace(a,b,N) 把10的a次方到10的b次方区间分成N份

    三维图
    三维图基本上显示的是由两个变量g = f(x,y)中的函数定义的表面。
    像之前一样,要定义g,首先使用meshgrid命令在函数的域上创建一组(x,y)点。 接下来,分配函数本身。 最后,使用surf命令创建一个曲面图。
    surf(x, y, g)

    展开全文
  • 上一篇博客中介绍了如何使用MATLAB训练和测试数据,这篇博客介绍如何从训练好的模型中提取图像特征,并介绍把卷积层特征可视化方法。 之前提取特征都是用python,尽管用python提取特征很方便,但是感觉MATLAB提取...

    上一篇博客中介绍了如何使用MATLAB训练和测试数据,这篇博客介绍如何从训练好的模型中提取图像特征,并介绍把卷积层特征可视化方法。
    之前提取特征都是用python,尽管用python提取特征很方便,但是感觉MATLAB提取特征更方便,因为博主对MATLAB比较熟悉,对python不太熟悉,,,,,,可视化部分我参考了http://www.2cto.com/kf/201609/550879.html,特征提取是我自己总结的,这个博客里还介绍了权重的可视化,大家自己去拜读一下吧。
    开始train(最近博客审核的好慢啊)

    1、提取特征
    当把图像数据forward之后,所有的数据都存在了blob当中,所以只需要从blob当中把数据提取出来即可,

    names=net.blob_names; %网络每一层的名字
    featuremap=net.blobs(names{mapnum}).get_data();%获取指定层的特征图,mapnum需要自己指定,既哪一层

    把names输出得到结果
    这里写图片描述
    这是每一层的名字,featuremap=net.blobs(names{mapnum}).get_data();featuremap就是指定层的特征图,计算一个featuremap的大小,发现这是一个4维数据:
    这里写图片描述

    [m_size,n_size,num,crop]=size(featuremap) %获取特征图大小,长*宽*卷积核个数*通道数
    通道数就是上一篇博客里介绍的crop之后的10张图。m_size,n_size,num,crop分别代表feature map的长,宽,卷积核个数和通道数。

    如果我们想要提取其中一张crop图的某一个featuremap,怎么办呢?
    只需要 feature_map=featuremap(:,:,哪一个featuremap,哪一个crop)。这样就能完成特征提取,最后我会把特征提取的函数代码放在最后。
    我们用Alexnet最常用的就是4096,那么怎么提取4096的特征呢,只需要:

    featuremap=net.blobs(names{13}).get_data();%13层就是fc7层

    结果如下:
    这里写图片描述
    一共有4096*10维的特征,其中10就是10张crop图,求平均或者max,或者只需要拿出一个4096就能得到4096维的特征。是不是挺简单的?

    下面就是把特征图可视化出来,最后我会把可视化代码贴上去,这里可视化分为两部分,一个是部分可视化,指定哪一层,哪一个crop图可视化。第二个是全部可视化,只需要指定哪一层,把所有的featuremap可视化出来,效果图(指定第二层,第一张crop图,既卷积层的第一个crop的96个featuremap):
    这里写图片描述
    全部可视化效果:
    这里写图片描述
    知道为什么是960个featuremap吗?对,因为是96*10,96是卷积核数量,10是10个crop图,所以是960个featuremap。
    代码如下:

    function [  ] = feature_partvisual( net,mapnum,crop_num )  %三个参数分别代表网络结构,第几层特征图,第几张crop_num,部分可视化
    names=net.blob_names;
    featuremap=net.blobs(names{mapnum}).get_data();%获取指定层的特征图
    [m_size,n_size,num,crop]=size(featuremap); %获取特征图大小,长*宽*卷积核个数*通道数
    featuremap(:,:,1,crop_num);     %第多少个卷积核,第几个crop_num的特征
    row=ceil(sqrt(num));%行数
    col=row;%列数
    feature_map=zeros(m_size*row,n_size*col);
    cout_map=1;
    for i=0:row-1
        for j=0:col-1
            if cout_map<=num
                feature_map(i*m_size+1:(i+1)*m_size,j*n_size+1:(j+1)*n_size)=(mapminmax(featuremap(:,:,cout_map,crop_num),0,1)*255)';
                cout_map=cout_map+1;
            end
        end
    end
    imshow(uint8(feature_map));
    str=strcat('feature map num:',num2str(cout_map-1));
    title(str)
    end

    全部可视化:

    function [  ] = feature_fullvisual( net,mapnum )
    names=net.blob_names;
    featuremap=net.blobs(names{mapnum}).get_data();%获取指定层的特征图
    [m_size,n_size,num,crop]=size(featuremap)  %获取特征图大小,长*宽*卷积核个数*图片个数
    row=crop;%行数
    col=num;%列数
    feature_map=zeros(m_size*row,n_size*col);
    for i=0:row-1
        for j=0:col-1
            feature_map(i*m_size+1:(i+1)*m_size,j*n_size+1:(j+1)*n_size)=(mapminmax(featuremap(:,:,j+1,i+1),0,1)*255)';
        end
    end
    figure
    imshow(uint8(feature_map))
    str=strcat('feature map num:',num2str(row*col));
    title(str)
    end

    主测试函数(包括了类别测试的代码)

    clear;
    clc;
    addpath ../../../../matlab
    net = init_net();                      %初始化网络
    %im_data = caffe.io.load_image('test0020.jpg');
    im_data=imread('test0001.jpg');         %读入图像
    %imshow(im_data);
    input_data = {prepare_image(im_data)};  %准备数据,需要裁剪时裁剪数据
    
    %不裁剪时使用reshape操作
    %  net.blobs('data').reshape([227 227 3 1]); % 当读进来一幅图像,不做裁剪操作时,这样使用
    %  net.reshape();
    
    tic
    res = net.forward(input_data);    %前向传播结果
    mapnum=2;     %第几层
    crop_num=1;   %第几张crop_num
    feature_partvisual( net,mapnum, crop_num ); %可视化部分feature map
    feature_fullvisual(net,mapnum);             %可视化全部的feature map
    
    res=res{1};
    res = mean(res, 2);  % take average scores over 10 crops  求裁剪的10个batch平均值
    toc
    
    [~, idx]= max(res);  %找到最大的一个概率值
    disp(idx-1);         %输出类别标签
    caffe.reset_all();  %关闭所有的网络

    参考博客:http://www.2cto.com/kf/201609/550879.html

    展开全文
  • 上一篇博客介绍了如果可视化第一个卷积层的卷积核,可视化的一个重要作用就是判断训练权重的好坏,效果可以参考我上一篇博客,这篇博客介绍把卷积核可视化写成MATLAB的一个函数,用来直接调用就可以实现卷积核权重...
  • 小编最近写文章的时候发现,训练网络,使用tensorboard进行可视化展示出来的精度曲线下载后生成csv或json类型的文件,小编尝试了使用各种方法进行文件的读取和绘图,但出来的效果并不能很好的展示在文章上面。...
  • 5.4 Python的可视化包 –...Matplotlib最早是为了可视化癫痫病人的脑皮层电相关的信号而研发,因为在函数的设计上参考了MATLAB,所以叫做Matplotlib。Matplotlib首次发表于2007年,在开源和社区的推动下,现在在基于P
  • Matlab深度学习——入门

    千次阅读 多人点赞 2020-04-12 18:27:02
    使用应用程序和可视化工具创建、修改和分析深度学习架构 使用应用程序预处理数据,并自动对图像、视频和音频数据进行真值标注 在 NVIDIA® GPU、云和数据中心资源上加速算法,而无需专门编程 与基于 TensorFlow、P.....
  • 观看此神经网络了解在整个模型训练中可视化卷积层激活Image by Sian Molloy警告,该文章有不少大尺寸的。动机与其他机器学习技术相比,深度学习的主要优势在于它能够自动学习输入数据的抽象表示。 但是,并非总是...
  • MATLAB深度学习(一)— Deep Learning Toolbox ...使用应用程序和可视化工具创建、修改和分析深度学习架构。 使用应用程序预处理数据,并自动对图像、视频和音频数据进行真值标注 。 在 NVIDIA®...
  • 跑出结果对应的记录 ...归一方式:计算图像均值 读取每一层输出对应的记录 deploy如何写 读取每一层的输出对应的matlab程序 尚存在的问题 跑出结果对应的记录 修改过程 起初...
  • 实用的数据标注和可视化工具 强大的代码生成功能 支持多平台部署 3. 仅用11行代码实现图像分类 1行代码直接导入经典的Alexnet网络模型 通过摄像头实时采集图像数据,可识别1000种常见物体 4. 迁移学习的力量 基于...
  • MATLAB 快速标准绘图的实现 目录MATLAB 快速标准绘图的实现前言一、绘图中采用的函数二、函数模块1.检查输入变量2.绘制图像3....MATLAB软件提供的Simulink工具箱可实现可视化模块的建构和模型仿真
  • 最近在写深度学习算法方案的时候,需要在方案书附录中对imagenet数据集可视化,但imagenet数据集中的图像大小并不完全相同,经过一番努力,显示效果才达到导师的要求,故这里把我实现过程中的小问题记录下来,方便...
  • Matlab是世界知名和广泛用于教学和生产环境的数据可视化,科学计算开发软件,正如其全称matrix&laboratory所说,其主要用于矩阵计算相关的工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模...
  • MATLAB个人入坑指南

    2020-08-08 23:51:54
    但python的优势在于有各种各样的库文件,在做一些可视化分析等多样化、多元化的工作时,使用python的库文件便能够很简洁的完成。例如, 读取与保存大数据文件 调整图像大小 使用深度预训练模型 ...
  • Matlab-Deep Learning Toolbox

    2019-04-08 21:32:13
    深度学习调整和可视化 绘制培训进度,评估准确性,进行预测,调整培训选项以及可视化网络学习的功能 并行和云中的深度学习 通过本地或云中的多个GPU扩展深度学习,并以交互方式或批量作业培训多个网络 深度学习...
  • Matlab是世界知名和广泛用于教学和生产环境的数据可视化,科学计算开发软件,正如其全称matrix&laboratory所说,其主要用于矩阵计算相关的工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模...
  • Matlab R2020b linux安装包

    2020-12-08 16:08:41
    该软件常用于机器人、数据分析、无线通信、深度学习、信号处理、计算机视觉等众多领域之中,深厚上百万科学家和工程师的信赖,提供了科学数据可视化、矩阵计算、数值分析、绘制函数、数据图像、实时编辑器等实用的...
  • Matlab R2020a linux安装包

    2020-11-10 13:33:38
    该软件常用于机器人、数据分析、无线通信、深度学习、信号处理、计算机视觉等众多领域之中,深厚上百万科学家和工程师的信赖,提供了科学数据可视化、矩阵计算、数值分析、绘制函数、数据图像、实时编辑器等实用的...
  • Matlab 读写*.xml文件

    千次阅读 2018-04-11 19:18:44
    Matlab 读写*.xml文件1.摘要 因为经常使用将图像中的目标标注信息保存在*.xml文件中。在训练深度神经网络是常用这样的训练数据。...②将*.xml文件中的信息显示在对应的图像上,可以简单可视化数据;③将在图像中...
  • 从图形绘制开始,层层深入MATLAB的二维和三维图像绘制功能,此外还介绍了科学计算可视化的相关知识。第2部分“图像处理工具箱详解”,包括第11~第19章,详细讲解了图像处理工具的各项功能及相关函数,并对有关的...
  • 从图形绘制开始,层层深入MATLAB的二维和三维图像绘制功能,此外还介绍了科学计算可视化的相关知识。第2部分“图像处理工具箱详解”,包括第11~第19章,详细讲解了图像处理工具的各项功能及相关函数,并对有关的...
  • Matlab是世界知名和广泛用于教学和生产环境的数据可视化,科学计算开发软件,正如其全称matrix&laboratory所说,其主要用于矩阵计算相关的工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模...
  • Numpy和Scipy常常结合着使用,Python大多数机器学习库都依赖于这两个模块,绘图和可视化依赖于matplotlib模块,matplotlib的风格与matlab类似。Python机器学习库非常多,而且大多数开源,主要有: 1. scikit-learn...
  • 可视化 从C绘图输出 Julia的情节输出 深度学习 。 平滑到粗糙的正方形 有些是用Matlab编写的,有些是用C编写的,有些是用Fortran编写的,有些是用Julia编写的,有些使用Python包。 有些是我写的,有些是我在书中...
  • 一个集企业信息查询,数据分析,推理,评估,预测企业信用可视化分析平台下阶段会基于知识图谱,机器学习算法,深度神经网络进行风险评估及关联关系推理 第一阶段研发工作【170901--180601】 平台架构 系统架构主要...
  • 检索可视化。这一步运行queryInDatabaseDemo.m即可。 4). 计算mAP。不需要计算MAP的这步略过。运行compute_MAP.m,关于mAP的计算,请参阅我画的mAP计算过程示意:信息检索评价指标,这个计算mAP的脚本是按照那个...
  • LSHBOX:局部敏感算法(LSH)的C++工具箱,提供了好几种普遍的LSH算法,也可以支持Python和MATLAB。 PGM-index:能够快速查找、前导、范围搜索和更新数以亿计项数组的数据结构,其跟传统索引相比,使用梯度的顺序而...
  • Python数据挖掘工程师(机器学习、深度学习、算法专家) Python爬虫工程师 Python测试工程师(自动测试、测试开发) 说明:目前,数据分析是一个非常热门的方向,因为不管是互联网行业还是传统行业都已经积累了...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

matlab可视化深度图

matlab 订阅