您现在的位置:首页 >> 机器学习 >> 内容

基于CNN卷积神经网络的minst数据库手写字识别matlab仿真

时间:2023/1/9 22:27:15 点击:

  核心提示:A198,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y56Uk5xt

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

        在无监督预训练出现之前,训练深度神经网络通常非常困难,而其中一个特例是卷积神经网络。卷积神经网络受视觉系统的结构启发而产生。第一个卷积神经网络计算模型是在Fukushima(D的神经认知机中提出的,基于神经元之间的局部连接和分层组织图像转换,将有相同参数的神经元应用于前一层神经网络的不同位置,得到一种平移不变神经网络结构形式。后来,Le Cun等人在该思想的基础上,用误差梯度设计并训练卷积神经网络,在一些模式识别任务上得到优越的性能。至今,基于卷积神经网络的模式识别系统是最好的实现系统之一,尤其在手写体字符识别任务上表现出非凡的性能。 

4.部分源码

.................................................................

load mnist_uint8;

%该模型采用的数据为mnist_uint8.mat,?

%含有70000个手写数字样本其中60000作为训练样本,10000作为测试样本。?把数据转成相应的格式,并归一化。

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

%% ex1 Train a 6c-2s-12c-2s Convolutional neural network 

%will run 1 epoch in about 200 second and get around 11% error. 

%With 100 epochs you'll get around 1.2% error

%设置网络结构及训练参数

rand('state',0)

cnn.layers = {

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

    struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer

    struct('type', 's', 'scale', 2) %sub sampling layer

    struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer

    struct('type', 's', 'scale', 2) %subsampling layer

};

%训练选项,alpha学习率(不用),batchsize批训练中样本的数量,numepochs迭代次数。

opts.alpha = 1;

opts.batchsize = 50;

opts.numepochs = 5;

%初始化网络,对数据进行批训练,验证模型准确率

cnn = cnnsetup(cnn, train_x, train_y);

cnn = cnntrain(cnn, train_x, train_y, opts);

[er, bad] = cnntest(cnn, test_x, test_y)

1-er

A198

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168