前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习Matlab工具箱代码详解概览

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

作者头像
量化投资与机器学习微信公众号
发布2018-01-29 10:41:14
3.3K0
发布2018-01-29 10:41:14
举报

谢谢大家支持,可以让更多朋友和有兴趣志同道合的人关注这个公众号。让知识传播的更加富有活力,谢谢各位读者。

查看之前博文资料请点击右上角查看历史消息

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

  在阅读Matlab工具箱代码之前,建议大家阅读几篇CNN方面的两篇经典材料.

 (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数据库上的示例程序:

代码语言:js
复制
%%=========================================================================  
% 主要功能:在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');  

量化投资与机器学习

知识、能力、深度、专业

勤奋、天赋、耐得住寂寞

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量化投资与机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档