由于matlab在列化a(:)以及reshape(a)等操作中是列优先的,所以要重构出新的高维度矩阵,通常要把reshape和permute结合起来使用。

先到 http://caffe.berkeleyvision.org/ 下载 训练好的model bvlc_reference_caffenet.caffemodel;

更多caffe使用也请参看上面的网址。

 1  clear
 2  close all
 3
 4
 5 addpath ./matlab
 6
 7 model= './models/bvlc_reference_caffenet/deploy.prototxt';
 8 weights= './models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel';
 9
10
11  net = caffe.Net(model, weights, 'test'); % create net and load weights
12
13 %% obtain params in diff layers and show
14 pdata = net.params('conv1',1).get_data();
15
16 vis_square(pdata,2,0.5);
17
18
19 net.blobs('data').reshape([227 227 3 1]);
20 net.reshape();
21
22 %% prepare the image
23 im_data = caffe.io.load_image('./examples/images/cat.jpg');
24  mean = load('./matlab/+caffe/imagenet/ilsvrc_2012_mean.mat');
25
26 %% subtract mean_data (already in W x H x C, BGR)
27  mean_data = mean.mean_data;
28  im_data = im_data - mean_data;
29
30  width = 227; height = 227;
31  im_data = imresize(im_data, [width, height]); % resize using Matlab's imresize
32  res = net.forward({im_data});
33
34  prob = res{1};
35
36 %% obtain features and show
37  ddata = net.blobs('conv2').get_data();
38  vis_square(ddata,2,0);

 1 function vis_square(data,padsize,padval)
 2
 3  data=net_data_normalize(data);
 4
 5 if ~ exist('padsize', 'var')
 6   padsize=1;
 7 end
 8 if ~ exist('padval', 'var')
 9   padval=0;
10 end
11 ndim=ndims(data);
12 % w*num*h*chanel
13 if ndim==4
14     fprintf('visualize params\n');
15     data=permute(data,[1,4,2,3]);
16 else ndim==3
17     fprintf('visualize maps\n');
18     data=permute(data,[1,3,2]);
19 end
20
21     n = (ceil(sqrt(size(data,2))));
22     data=padarray(data,[padsize n^2-size(data,2) padsize 0],'post');
23     data=reshape(data,size(data,1),n,n,size(data,3),size(data,4));
24     data=permute(data,[1,3,4,2,5]);
25     data=reshape(data,[size(data,1)*n,size(data,3)*n,size(data,5)]);
26
27 figure
28 if ndim==4
29     ;
30 else ndim==3
31     data=imrotate(data,-90);
32 end
33
34 imshow(imresize(data,[500,500],'nearest'))
35
36 end

转载于:https://www.cnblogs.com/jeffwilson/p/4750938.html

matlab列优先与高维矩阵重构 及 CNN 逐层可视化 on Matlab相关推荐

  1. 行优先和列优先存储高维数组

    行优先:就是数组元素按照先存储每一行的方式进行存储 列优先:就是数组元素按照先存储每一列的方式进行存储 假设A[n][m] 从0开始 (0---n-1)(0---m-1) 行优先:基地址+((行数)* ...

  2. matlab中服从高斯分布的矩阵_一些张量的计算步骤matlab代码

    Matlab工具箱Tensor Toolbox,安装链接如下 CSDN-专业IT技术社区-登录​blog.csdn.net . , 这是我们定义的张量 , matlab代码: %% %工具包:Tens ...

  3. 矩阵中 “行优先“ 和 “列“ 优先

    什么是行优先和列优先? 故名思意,当我们表示一个矩阵的时候把行放在前面就是行优先,把列放在前面就是列优先. 比如 一个矩阵[m][n] , 表示为 m行n列矩阵,表示为行优先,当表示为 m 列n行的时 ...

  4. Eigen入门之密集矩阵 10 - 矩阵的行优先及列优先存储

    简介 本篇介绍Eigen中矩阵及二维数组的系数存储顺序–行优先及列优先,已经如何指定优先顺序. 行优先(row-majoe). 列优先(column-majoe) 矩阵的系数条目组成了一个二维的结构, ...

  5. 矩阵基础 (1). 行优先和列优先的问题

    原 矩阵基础 (1). 行优先和列优先的问题 2016年08月18日 18:37:00 林微 阅读数:7351 </div><div class="operating&qu ...

  6. 三角矩阵上三角列优先压缩存储---加法、减法、乘法、转置、秩、行列式值、伴随矩阵、逆

    三角矩阵上三角列优先压缩存储: 我们以图4.9中的矩阵A矩阵为例,针对A上三角部分,采用以列为主序存储至一个一维数组B内,按照三角矩阵上三角元素构成可知,该部分有n(n+1)/2个元素,因为下三角中的 ...

  7. Matlab中矩阵的合并、某行某列的删除、矩阵大小的改变(完整的函数调用表)、矩阵元素的访问

    矩阵的合并 矩阵的合并就是把两个或两个以上的矩阵合并成一个新的矩阵 [ ]可用于构造矩阵,也可用于合并矩阵 c=[A,B] 就是在水平方向上合并矩阵A和矩阵B c=[A;B] 就是在竖直方向上合并矩阵 ...

  8. 主成分分析PCA算法:为什么去均值以后的高维矩阵乘以其协方差矩阵的特征向量矩阵就是“投影”?

    这是从网上看到的PCA算法的步骤: 第一步,分别求每列的平均值,然后对于所有的样例,都减去对应的均值. 第二步,求特征协方差矩阵. 第三步,求协方差的特征值-显示全部 关注者 1,218 被浏览 78 ...

  9. 机器学习--主成分分析PCA算法:为什么去均值以后的高维矩阵乘以其协方差矩阵的特征向量矩阵就是“投影”?

    原文链接:主成分分析PCA算法:为什么去均值以后的高维矩阵乘以其协方差矩阵的特征向量矩阵就是"投影"?_天下对手教会少林武僧-CSDN博客_pca投影矩阵 这是从网上看到的PCA算 ...

最新文章

  1. mysql 添加table_mysql数据库对table的增删改查
  2. java mybatis向mysql数据库插入中文出现乱码
  3. 【Web安全】DVWA之Command injection(命令执行漏洞)探索
  4. eclipse安装hadoop插件及配置
  5. ssh 错误: ssh_exchange_identification
  6. HDU-2546-饭卡
  7. Qt 加载QML 文件的几种方式
  8. 像素越高,模型越好?2.1亿 VS 3亿实战测试
  9. php文件包含漏洞的危害,php文件包含漏洞小结
  10. EasyRecovery如何恢复虚拟建模软件的数据文件
  11. Selenium之利用Excel实现参数化
  12. apache2 wordpress目录权限_Linux下WordPress建站步骤
  13. from fake_useragent import UserAgent
  14. 在线端口检测 - 端口扫描 - 端口开放检查
  15. 公众号下面显示一排服务器,新技能get 微信公众号文章花式排版大法
  16. html怎么转换成ftl模板,FreeMarker入门+模板静态化+模板字符串静态化
  17. 什么是物联网?定义和解释
  18. java是引用传递还是值传递_流言终结者:Java是引用传递还是值传递?
  19. 图像解析——(java)识别车牌步骤——更新中
  20. Myeclipse 6.0 注册码生成器代码

热门文章

  1. STM32开发 -- L3GD20H陀螺仪开发详解
  2. S5PV210开发 -- 通信
  3. 你不得不看的六篇知识图谱落地好文
  4. Android BlueBorne (CVE-2017-0781)漏洞分析和利用
  5. php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法
  6. java中junit_【Java】Junit快速入门
  7. oracle日期格式更新_oracle 日期格式
  8. sql输出带颜色的字段_表输出步骤详解
  9. 发表论文的十条金玉良言
  10. Codeforces Gym 101630J Journey from Petersburg to Moscow (最短路)