您的位置:首页 > 编程语言 > MATLAB

深度学习Matlab工具箱代码详解

2017-01-04 17:31 357 查看
  本文转自陈峻岭的博客http://blog.csdn.net/u013088062/article/details/48676057

      博主太棒了,为初涉深度学习的同学提供了详细的例程解释。向原博主致敬!

     最近研究了几天深度学习的Matlab工具箱代码,发现作者给出的源码中注释实在是少得可怜,为了方便大家阅读,特对代码进行了注释,与大家分享。

  在阅读Matlab工具箱代码之前,建议大家阅读几篇CNN方面的两篇经典材料,对卷积神经网络Matlab工具箱代码的理解有很大帮助,稍后我会将这两篇文献上传到网上与大家分享。急需的也可以留言注明,我会及时发送至邮箱的。

      相关资源:http://download.csdn.net/detail/u013088062/9134179

  (1)《Notes on Convolutional Neural Networks》,这篇文章是与Matlab工具箱代码配套的文献,不过文献中在下采样层也有两种训练参数,在工具箱中的下采样层并没有可训练参数,直接进行下采样操作。

     (2)《CNN学习-薛开宇》,这是与《Notes on Convolutional Neural Networks》内容及其相似的一份中文PPT资料,对卷积神经网络的介绍也是通俗易懂。

     (3)深度学习的Matlab工具箱Github下载地址:https://github.com/rasmusbergpalm/DeepLearnToolbox

     接下来给出一个工具箱中CNN程序在Mnist数据库上的示例程序:

[python] view
plain copy

%%=========================================================================  

% 主要功能:在mnist数据库上做实验,验证工具箱的有效性  

% 算法流程:1)载入训练样本和测试样本  

%          2)设置CNN参数,并进行训练  

%          3)进行检测cnntest()  

% 注意事项:1)由于直接将所有测试样本输入会导致内存溢出,故采用一次只测试一个训练样本的测试方法  

%%=========================================================================  

%%  

%%%%%%%%%%%%%%%%%%%%加载数据集%%%%%%%%%%%%%%%%%%%%  

load mnist_uint8;  

train_x = double(reshape(train_x',28,28,60000))/255;  

test_x  = double(reshape(test_x',28,28,10000))/255;  

train_y = double(train_y');  

test_y  = double(test_y');  

  

%%  

%%=========================================================================  

%%%%%%%%%%%%%%%%%%%%设置卷积神经网络参数%%%%%%%%%%%%%%%%%%%%  

% 主要功能:训练一个6c-2s-12c-2s形式的卷积神经网络,预期性能如下:  

%          1)迭代一次需要200秒左右,错误率大约为11%  

%          2)迭代一百次后错误率大约为1.2%  

% 算法流程:1)构建神经网络并进行训练,以CNN结构体的形式保存  

%          2)用已知的训练样本进行测试  

% 注意事项:1)之前在测试的时候提示内存溢出,后来莫名其妙的又不溢出了,估计到了系统的内存临界值  

%%=========================================================================  

rand('state',0)  

cnn.layers = {  

    struct('type', 'i')                                    %输入层  

    struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5)  %卷积层  

    struct('type', 's', 'scale', 2)                        %下采样层  

    struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %卷积层  

    struct('type', 's', 'scale', 2)                        %下采样层  

    };  

cnn            = cnnsetup(cnn, train_x, train_y);  

opts.alpha     = 1;  

opts.batchsize = 50;  

opts.numepochs = 5;  

cnn            = cnntrain(cnn, train_x, train_y, opts);  

save CNN_5 cnn;  

  

load CNN_5;  

[er, bad]  = cnntest(cnn, test_x, test_y);  

figure; plot(cnn.rL);  

assert(er<0.12, 'Too big error');  



  接下来给出工具箱中有关CNN部分程序注释的网址:

  (1)深度学习Matlab工具箱代码注释——cnnsetup.m:       http://blog.csdn.net/u013088062/article/details/48662121


  (2)深度学习Matlab工具箱代码注释——cnntrain.m:         http://blog.csdn.net/u013088062/article/details/48662247

  (3)深度学习Matlab工具箱代码注释——cnnff.m:             http://blog.csdn.net/u013088062/article/details/48662303

  (4)深度学习Matlab工具箱代码注释——cnnbp.m:            http://blog.csdn.net/u013088062/article/details/48662349

  (5)深度学习Matlab工具箱代码注释——cnnapplygrads.mhttp://blog.csdn.net/u013088062/article/details/48662397
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: