matlab深度学习——【卷积神经网络】手写字的识别
> 本文所使用的数据集在文章最后,不需要积分就可以下载!
数据集下载
这里主要是基于卷积神经网络的手写字的识别,我是用matlab做的,如果有对卷积神经网络不太熟悉的伙伴可以搜下,网上资源比较多,我这里就不多说了,直接上代码了。
%%准备工作空间
clc
clear all
close all%%导入数据
digitDatasetPath = fullfile('./','/HandWrittenDataset/');
imds = imageDatastore(digitDatasetPath,...'IncludeSubfolders',true,'LabelSource','foldernames');%采用文件夹名称作为数据标记%%数据集图个数
countEachLabel(imds)numTrainFiles = 17;%每一个数字有22个样本,取17个样本作为训练数据
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomized');
%查看图片的大小
img = readimage(imds,1);
size(img)%%定义卷积神经网络的结构
layers = [
%输入层
imageInputLayer([28 28 1])%卷积层
convolution2dLayer(5,6,'Padding',2)
batchNormalizationLayer
reluLayermaxPooling2dLayer(2,'stride',2)convolution2dLayer(5,16)
batchNormalizationLayer
reluLayermaxPooling2dLayer(2,'stride',2)convolution2dLayer(5,120)
batchNormalizationLayer
reluLayer%最终层
fullyConnectedLayer(10)
softmaxLayer
classificationLayer];%%训练神经网络一、设置训练参数
options = trainingOptions('sgdm',...'MaxEpochs',50,...'ValidationData',imdsValidation,...'ValidationFrequency',5,...'Verbose',false,...'Plots','training-progress');%显示训练的进度%训练神经网络,保存网络
net = trainNetwork(imdsTrain,layers,options);
save 'CSNet.mat' net%%标记数据(文件名称方式,自行构造)
mineSet = imageDatastore('./hw22/hw22/', 'FileExtensions','.jpg',...'IncludeSubfolders',false);
mLabels = cell(size(mineSet.Files,1),1);
for i = 1:size(mineSet.Files,1)
[filepath,name,ext] = fileparts(char(mineSet.Files{i}));
mLabels{i,1} = char(name);
end
mLabels2 = categorical(mLabels);
mineSet.Labels = mLabels2;%%%使用网络进行分类并计算准确性
%手写数据
YPred = classify(net,mineSet);
YValidation = mineSet.Labels;
%计算正确率
accuracy = sum(YPred == YValidation)/numel(YValidation)
%绘制预测结果
figure;
nSample = 10;
ind = randperm(size(YPred,1),nSample);
for i = 1:nSamplesubplot(2,fix((nSample+1)/2),i)
imshow(char(mineSet.Files(ind(i))))
title(['预测:' char(YPred(ind(i)))])
if char(YPred(ind(i))) ==char(YValidation(ind(i)))xlabel(['真实:' char(YValidation(ind(i)))],'Color','b')
elsexlabel(['真实:' char(YValidation(ind(i)))],'color','r')
end end
直接上结果:
里面的数据存放的位置根据自己的情况修改即可。
数据集:
CSDN下载路径,如果有多余的积分,可以支持一下!没有的也无所谓,下面有百度网盘链接!
手写数字数据集
百度网盘:如失效,请留邮箱!
链接: 手写数字数据集,点击下载
提取码: uak2
matlab深度学习——【卷积神经网络】手写字的识别相关推荐
- 一种基于深度学习(卷积神经网络CNN)的人脸识别算法-含Matlab代码
目录 一.引言 二.算法的基本思想 三.算法数学原理 3.1 权值共享 3.2 CNN结构 四.基于卷积神经网络的人脸识别算法-Matlab代码 五.Matlab源代码获取 一.引言 在工程应用中经常 ...
- 计算机视觉与深度学习 | 卷积神经网络实现异常行为识别(目标分割与提取)
################################################ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...
- [深度学习-1]神经网络-手写数字识别
Date:2018年9月29记 数据及彭亮给出的数据集和源码在下面网址: https://github.com/mnielsen/neural-networks-and-deep-learning 在 ...
- 深度学习 卷积神经网络-Pytorch手写数字识别
深度学习 卷积神经网络-Pytorch手写数字识别 一.前言 二.代码实现 2.1 引入依赖库 2.2 加载数据 2.3 数据分割 2.4 构造数据 2.5 迭代训练 三.测试数据 四.参考资料 一. ...
- 毕设 深度学习卷积神经网络的花卉识别
文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...
- 深度学习 卷积神经网络原理
深度学习 卷积神经网络原理 一.前言 二.全连接层的局限性 三.卷积层 3.1 如何进行卷积运算? 3.2 偏置 3.3 填充 3.4 步长 3.5 卷积运算是如何保留图片特征的? 3.6 三维卷积 ...
- 毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉
文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...
- 深度学习-卷积神经网络初识-1
卷积神经网络 技交部 潘震宇 一.计算机视觉 在计算机视觉领域中,存在着许多问题,各类领域基本都包含着这俩种基础问题: 1. 图像分类 2. 目标检测 除上述之外,最近有一种新颖的技术,也出现在大众的 ...
- 深度学习——卷积神经网络的应用——目标检测
一.理论部分介绍 1. 目标定位和特征点检测 图片检测问题: 分类问题:判断图中是否为汽车: 目标定位:判断是否为汽车,并确定具体位置: 目标检测:检测不同物体并定位. 目标分类和定位: 对于目标定位 ...
- 深度学习卷积神经网络大事件一览
转载自:http://blog.csdn.net/u013088062/article/details/51118744 深度学习(DeepLearning)尤其是卷积神经网络(CNN)作为近几年来模 ...
最新文章
- 零售业将成人工智能系统支出额最高的行业
- ubuntu 14.04 安装oracle 11g,ubuntu 14.04 安装 oracle 11g
- 借双慧眼识别钓鱼欺诈网站
- Java容器--Map
- Spring核心注释
- 机器学习在高德起点抓路中的应用实践
- Zend Studio 实用快捷键一览表
- python 判断线程状态_Python 线程和进程
- 关于static 和 const
- 心语收集14:人生没有如果,但是有很多但是;人生不能后悔,但是可以拐弯。...
- 企业管理培训PPT模板
- 人脸数据清洗方法+代码汇总
- linux网络设备驱动(一)
- 用HTML和CSS做箭头
- linux下安装xamp
- 详解Google Chrome浏览器(操作篇)(上)
- 快递查询APP隐私条款
- 嵌入式Linux内核配置、裁剪与编译浅析(ARM版)
- Fedora linux 3322动态域名解析设置
- 从户外广告“全面轰炸”看凡客的品牌营销理念