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

主要功能:在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');

     

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。
如果觉得文章对你有用,请随意赞赏收藏
相关推荐
相关下载
登录后评论
Copyright © 2019 宽客在线