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

深度学习Matlab工具箱代码注释——MnistTest.m

2017-10-28 15:51 393 查看
%%==========================================
===============================% 主要功能:在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');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: