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

先到 http://caffe.berkeleyvision.org/ 下载 训练好的model bvlc_reference_caffenet.caffemodel;
更多caffe使用也请参看上面的网址。
clear
close all addpath ./matlab model= './models/bvlc_reference_caffenet/deploy.prototxt';
weights= './models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'; net = caffe.Net(model, weights, 'test'); % create net and load weights %% obtain params in diff layers and show
pdata = net.params('conv1',).get_data(); vis_square(pdata,,0.5); net.blobs('data').reshape([ ]);
net.reshape(); %% prepare the image
im_data = caffe.io.load_image('./examples/images/cat.jpg');
mean = load('./matlab/+caffe/imagenet/ilsvrc_2012_mean.mat'); %% subtract mean_data (already in W x H x C, BGR)
mean_data = mean.mean_data;
im_data = im_data - mean_data; width = ; height = ;
im_data = imresize(im_data, [width, height]); % resize using Matlab's imresize
res = net.forward({im_data}); prob = res{}; %% obtain features and show
ddata = net.blobs('conv2').get_data();
vis_square(ddata,,);
function vis_square(data,padsize,padval)
data=net_data_normalize(data);
if ~ exist('padsize', 'var')
padsize=;
end
if ~ exist('padval', 'var')
padval=;
end
ndim=ndims(data);
% w*num*h*chanel
if ndim==
fprintf('visualize params\n');
data=permute(data,[,,,]);
else ndim==
fprintf('visualize maps\n');
data=permute(data,[,,]);
end
n = (ceil(sqrt(size(data,))));
data=padarray(data,[padsize n^-size(data,) padsize ],'post');
data=reshape(data,size(data,),n,n,size(data,),size(data,));
data=permute(data,[,,,,]);
data=reshape(data,[size(data,)*n,size(data,)*n,size(data,)]);
figure
if ndim==
;
else ndim==
data=imrotate(data,-);
end
imshow(imresize(data,[,],'nearest'))
end
matlab列优先与高维矩阵重构 及 CNN 逐层可视化 on Matlab的更多相关文章
- Matlab命令合集 妈妈再也不用担心我不会用matlab了
matlab命令 一.常用对象操作:除了一般windows窗口的常用功能键外.1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看.2.who 可以查看当前工作空间变 ...
- (转)思考:矩阵及变换,以及矩阵在DirectX和OpenGL中的运用问题:左乘/右乘,行优先/列优先,...
转自:http://www.cnblogs.com/soroman/archive/2008/03/21/1115571.html 思考:矩阵及变换,以及矩阵在DirectX和OpenGL中的运用1. ...
- C++与Matlab混合编程之:矩阵数据结构
项目需要将matlab代码写成C++,准备用opencv.opencv中矩阵的存储与matlab有所不同,应注意以下问题: 1.matlab中矩阵是按照列优先存储的.对于n0*n1*...*nn维的矩 ...
- Matlab、R向量与矩阵操作 z
已有 1849 次阅读 2012-8-2 15:15 |系统分类:科研笔记|关键词:矩阵 480 window border center Matlab.R向量与矩阵操作 描 述 Matla ...
- Matlab、R向量与矩阵操作
Matlab.R向量与矩阵操作 描 述 Matlab R 1 建立行向量v=[1 2 3 4] v=[1 2 3 4] v<-c(1,2,3,4)或v<-scan(),然后输入 ...
- matlab global 不能传向量/矩阵
matlab global 不能传向量/矩阵 只能传1个数值 而函数变量可以传向量/矩阵
- C语言 数组 列优先 实现
C语言数组结构列优先顺序存储的实现 (GCC编译). 从行优先转换为列优先存储方式, 与行优先相比, 不同之处在于改变了数组维界基址的先后顺序, 从而改变了映像函数常量基址. /** * @brief ...
- C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why?
C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why? 简单粗暴的答案:存在Cache机制! 稍微啰嗦一点:CPU访问内存(读/写,遍历数组的话主要是读) ...
- 二维数组 A[m][n] 按行优先和按列优先的 下标地址转换公式
设二维数组 A[m][n] 按行优先存储, 每个元素占 p 个字节, 则 Loc(i, j) 的地址为 (i * n + m) * p, 第 i 行前面有 i 行, 每行有 n 个元素, 加上 第 i ...
随机推荐
- openssl
openssl genrsa -des3 -out server.key 1024openssl req -new server.key -out servr.csr seserver-fnamese ...
- 字符设备驱动之Led驱动学习记录
一.概述 Linux内核就是由各种驱动组成的,内核源码中大约有85%的各种渠道程序的代码.一般来说,编写Linux设备驱动大致流程如下: 1.查看原理图,数据手册,了解设备的操作方法. 2.在内核中找 ...
- Nginx中的进程亲和性 affinity
Nginx采用多进程Master/Worker结构,Worker进程数为CPU个数时工作效率最高,Nginx通过affinity为每个Worker进程绑定一个CPU,避免进程切换带来的消耗,同时能够保 ...
- [Python Day5] 常用模块
目录: 1.模块介绍 2.time & datetime 3.random 4.OS 5.sys 6.shutil 7.json & pickle 8.shelve 9.xml 处理 ...
- shell脚本连接、读写、操作mysql数据库实例
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...
- AX多线程编译
1.在命令行里先定位到AOS sever的BIN文件夹下(CD "AOS sever的BIN路径") CD C:\Program Files\Microsoft Dynamics ...
- CodeSimth - .Net Framework Data Provider 可能没有安装
使用CodeSimth 连接SQLite数据库库 提示错误 codesmith 6以上的版本,说是支持sqlite生成,也有对应的sqliteprovider.dll,但是使用时却说Test fail ...
- R语言XML包的数据抓取
htmlParse 函数 htmlParse加抓HTML页面的函数. url1<-"http://www.caixin.com/"url<-htmlParse(url1 ...
- asp.net C#获取程序文件相关信息
代码如下 复制代码 using System.Reflection;using System.Runtime.CompilerServices; //// 有关程序集的常规信息是通过下列// 属性集控 ...
- C# winform 安装程序打包(自定义操作)
(一),安装程序 以前用vs制作过安装程序,现在把步骤写出来,有帮助的大家一定要顶哦 第一步:建立工程1.打开vs,新建项目->其他项目类型->安装和部署(這個子项下面有安装项目和Web安 ...