基于caffe与MATLAB接口的回归分析与可视化

-----------------更新日志-----------------

20:33 2017/1/28    提供MATLAB生成loss曲线的方法

-----------------更新日志-----------------

如果遇到一些问题,可以在这里找下是否有解决方案。本文内容主要分为两部分,第一部分介绍基于caffe的回归分析,包括了数据准备、配置文件等;第二部分介绍了在MATLAB上进行的可视化。(话说本人最近有个课题需要做场景分类,有兴趣可以共同探讨一下)。

Preparation

预装好caffe on windows,并编译成功MATLAB接口。

通过caffe进行回归分析

通过caffe进行回归分析,在实验上主要分成HDF5数据准备、网络设计、训练、测试。该实验已经有网友做过,可以参考:http://www.cnblogs.com/frombeijingwithlove/p/5314042.html

或者查看转载的副本(http://blog.csdn.net/xiaoy_h/article/details/54731122)。但不同的是,本文在实验中某些必要的环节均通过MATLAB实现,而不是Python。下文仅对不同的内容进行介绍。

通过MATLAB准备HDF5数据

MATLAB是正经的MATLAB,比如你的数据含有35个输入变量,共10000个样本;先在MATLAB中创建一个变量,将数据(在此之间别忘了先做scaling)拷贝进去,将得到一个10000x 35的变量,当然标签变量就是10000 x 1的啦;最终得到train_x(10000 x 35)、train_y(10000 x 1)、test_x(600 x 35)、test_y(600 x 1)共四个变量,将他们保存到mat文件中,比如data.mat文件。

然后,通过如下脚本实现h5数据的转换(该脚本修改自CAFFE_ROOT\matlab\hdf5creation\目录下的demo.m):

%% WRITING TO HDF5
filename           =   'train.h5';
load 'data.mat';
num_total_samples  =   size(train_x,1);            %获取样本总数
data_disk          =   train_x';
label_disk         =   train_y';
chunksz            =   100;                        %数据块大小
created_flag       =   false;
totalct            =   0;
for batchno=1:num_total_samples/chunksz
   fprintf('batch no. %d\n', batchno);
   last_read       =   (batchno-1)*chunksz;
   % 在dump到hdf5文件之前模拟内存中放置的最大数据量
   batchdata       =   data_disk(:,last_read+1:last_read+chunksz);
   batchlabs       =   label_disk(:,last_read+1:last_read+chunksz);
   % 存入hdf5
   startloc        =   struct('dat',[1,totalct+1], 'lab',[1,totalct+1]);
   curr_dat_sz     =   store2hdf5(filename, batchdata,batchlabs, ~created_flag, startloc, chunksz);
   created_flag    =   true;                       %设置flag为了只创建一次文件
   totalct         =   curr_dat_sz(end);           %更新数据集大小 (以样本数度量)
end
%显示所存储HDF5文件的结构体
h5disp(filename);
%创建HDF5_DATA_LAYER中使用的list文件
FILE               =   fopen('train.txt', 'w
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
caffe是一个深度学习框架,而matlab是一个数学计算软件,两者可以结合使用来进行深度学习的研究和开发。具体来说,可以使用matlab来编写caffe的网络结构和训练脚本,并使用caffe进行模型训练和测试。 下面是一个使用caffematlab结合进行图像分类的例子: 1. 首先需要安装caffematlab,并将它们配置好。 2. 编写网络结构和训练脚本。可以使用matlabcaffe接口来编写网络结构和训练脚本,例如: ```matlab % 定义网络结构 net = caffe.NetSpec(); net.data = caffe.Input('shape', [28 28 1 100]); net.conv1 = caffe.Convolution('kernel_size', 5, 'num_output', 20, 'stride', 1); net.pool1 = caffe.Pooling('pool', 'MAX', 'kernel_size',2, 'stride', 2); net.conv2 = caffe.Convolution('kernel_size', 5, 'num_output', 50, 'stride', 1); net.pool2 = caffe.Pooling('pool', 'MAX', 'kernel_size', 2, 'stride', 2); net.fc1 = caffe.InnerProduct('num_output', 500); net.relu1 = caffe.ReLU(); net.fc2 = caffe.InnerProduct('num_output',10); net.loss = caffe.SoftmaxWithLoss(); % 保存网络结构 caffe.Net('lenet.prototxt', 'train'); % 训练网络 caffe.set_mode_cpu(); solver = caffe.Solver('lenet_solver.prototxt');solver.solve(); ``` 3. 进行模型训练和测试。可以使用caffe提供的命令行工具来进行模型训练和测试,例如: ```shell # 训练模型 caffe train -solver lenet_solver.prototxt # 测试模型 caffe test -model lenet.prototxt -weights lenet_iter_10000.caffemodel -gpu 0 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值