Matconvnet中mnist手写字体的训练与检测

1、下载MatConvNet: CNNs for MATLAB

http://www.vlfeat.org/matconvnet/download/matconvnet-1.0-beta25.tar.gz

2、examples/mnist/cnn_mnist_init.m

这里面是手写字体网络层结构设计的代码,详细解释参考博客:MatConvNet中mnist源码解析_深度学习思考者-CSDN博客_matconvnet mnist

3、运行 如下代码编译MatConvNet

addpath '../../matlab/';
vl_compilenn ;
vl_setupnn ;

4、cnn_mnist_init

此时生成训练的网络层结构 

5、运行cnn_mnist 开始训练

训练之前会下载手写字体数据集

如果无法下载的可通过百度云下载

链接:https://pan.baidu.com/s/1roy-whetBRhVGfbrU70H7w 
提取码:qoul 
下载后放在如下位置路径即可

6、训练

 训练结果也存放在data路径下

7、检测

新建matconvnettest.m

clear all
% Setup MatConvNet.
addpath '../../matlab/';
vl_compilenn ;
vl_setupnn ;

% 加载数据集.
load('D:/Codes/MATLAB2014/Mycode/matconvnettest/matconvnet-1.0-beta25/data/mnist-baseline-simplenn/imdb.mat');
% 加载预训练模型(就是我们刚刚训练的结果)
load('D:/Codes/MATLAB2014/Mycode/matconvnettest/matconvnet-1.0-beta25/data/mnist-baseline-simplenn/net-epoch-20.mat') ;
% 将最后一层改为 softmax (原始为softmaxloss,这是训练用)
net.layers{1, end}.type = 'softmax';
% 设置默认参数
% net = vl_simplenn_tidy(net) ;

% 获取图像
im = imread('4.png') ;
% 灰度化
im = rgb2gray(im);
% 反转图像,训练图像为黑底白字,测试图像为白底黑字,所以需要反转一下
im = 255-im;
im_ = single(im) ; % note: 255 range
% 输入默认大小为28*28
im_ = imresize(im_, [28 28]) ;
% 减去均值
im_ = im_ - images.data_mean;
% Run the CNN.
res = vl_simplenn(net, im_);

% Show the classification result.
scores = squeeze(gather(res(end).x)) ;
[bestScore, best] = max(scores);
figure(1) ; clf ; 
%imagesc(im) ;
imshow(im,[]);
title(sprintf('%d, score %.3f',...
   best-1, bestScore)) ;

运行matconvnettest.m

8、结果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值