MATLAB深度学习CNN包的代码详解补充及各变量参数说明

最近在做卷积神经网络,看了MATLAB版本的CNN包的实现,同时看了网上许多大神对此包的详细代码解释,感觉醍醐灌顶,同时感觉代码研究过程中仍有许多疑问,在这里针对MATLAB深度学习包的卷积神经网络包的训练说明,分别对程序运行过程中出现的变量以及其对应的意义做出说明。

首先,看此文章之前,请先了解以下前置内容:

Deep Learning(深度学习)学习笔记整理系列之(三) - zouxy09的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/zouxy09/article/details/8775518

BP算法——别跟我说看完这个你还不懂 - Hungryof的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/hungryof/article/details/50436231

卷积神经网络的详解 http://www.dataguru.cn/article-10638-1.html

详细解释CNN卷积神经网络各层的参数和链接个数的计算http://blog.csdn.net/dcxhun3/article/details/46878999

Deep Learning论文笔记之(四)CNN卷积神经网络bp算法推导和实现 http://blog.csdn.net/zouxy09/article/details/9993371/

Deep learning:五十一(CNN的反向求导及练习) - tornadomeet - 博客园

http://www.cnblogs.com/tornadomeet/p/3468450.html

cnn公式推导 - alexanderkun - 博客园

http://www.cnblogs.com/alexanderkun/p/4863691.html

 

然后,对于程序的详细源代码解释,参照此博客,本文是对此博客中一些遗漏的地方做些补充和说明:http://blog.csdn.net/zouxy09/article/details/9993743/

首先,在test_example_CNN.m中,各个变量的说明:

  • load mnist_uint8;

mnist_uint8.mat:手写数字原始数据集,包括以下四个变量:

train_x60000幅大小为784的输入图像,train_y60000幅大小为10train_x图像对应的分类结果。这两个矩阵用来训练神经网络。

test_x10000幅大小为784的输入图像,test_y10000test_x图像应该输出的、正确的分类结果(softmax回归,结果由长度为10的向量组成,如[x1,x2,…,x10],x1x10分别有0~1的值代表该图像对应数字是1~10的概率,最大的那个xi既是分类结果)。用test_x去训练神经网络,得到结果后与test_y比较,从而输出错误率。

  • 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');

对于这四行语句,是分别对上面说的四个矩阵进行变形操作,转换成double类型后求平均值。

train_x,先把60000x784的矩阵通过转置(')和reshape操作,转换成28x28x60000的图像,然后转换成double255(原始输入数据为0~255的值,这里需要压缩成0~1),即得到了6000028x28的手写数字输入图像。

train_y,直接转置(')然后转换成double,即得到了10x60000的矩阵,即60000train_x对应图像的分类结果。

test_xtest_y同上。

  • 来看optopt是训练过程中的训练参数,有这么三行:

    opts.alpha = 1;

    opts.batchsize = 50;

    opts.numepochs = 1;

    意义分别是系统调整权值时候的学习率α,每次训练的时候使用的一个样本的大小,以及训练次数。

  • cnn.layers = {

struct('type','i') %input layer

  • 1
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值