基于神经网络的分类设计——模式识别实验
一、实验意义及目的
卷积神经网络是深度学习的基本工具,本实验要求学生掌握常用神经网络算法原理,能够利用Matlab创建和训练简单的卷积神经网络来进行深度学习分类。
软件要求Matlab2018a及以上版本(18a版本开始提供Deep Learning Toolbox的工具箱,正式拉开了Matlab进军深度学习领域的序幕)。
二、实验内容
创建简单的深度卷积神经网络用于图像分类。
三、实验过程
1.加载和浏览图像数据。
2.定义网络架构。
3.指定训练选项。
4.训练网络。
四、实验说明与代码
加载数字样本数据作为图像数据存储。imageDatastore根据文件夹名称自动标注图像,并将数据存储为ImageDatastore对象。通过图像数据存储可以存储大图像数据,包括无法放入内存的数据,并在卷积神经网络的训练过程中高效分批读取图像。
digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos','nndatasets','DigitDataset');
imds = imageDatastore(digitDatasetPath,'IncludeSubfolders',true,'LabelSource','foldernames');
显示数据存储中的部分图像。
figure(1);
perm = randperm(10000,20);
for i = 1:20subplot(4,5,i);imshow(imds.Files{perm(i)});
end
图 1 随机展示的图片数据
labelcount = countEachLabel(imds);%计算每一个类别中的图像数量
img = readimage(imds,1);%在网络的输入层中指定图像的大小
numTrainFiles = 900;%将数据集划分为训练集和测试集,训练集的每个类别包含900个图像
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize');%定义卷积神经网络
layers = [imageInputLayer([28 28 1])convolution2dLayer(3,8,'padding','same')batchNormalizationLayerreluLayermaxPooling2dLayer(2,'stride',2)convolution2dLayer(3,16,'padding','same')batchNormalizationLayerreluLayermaxPooling2dLayer(2,'stride',2)convolution2dLayer(3,32,'padding','same')batchNormalizationLayerreluLayerfullyConnectedLayer(10)softmaxLayerclassificationLayer];
%指定训练选项
%学习率设置为0.04,训练轮数设置为10,每轮迭代次数为70
options = trainingOptions('sgdm',...'InitialLearnRate',0.04,...'MaxEpochs',10,...'Shuffle','every-epoch',...'ValidationData',imdsValidation,...'ValidationFrequency',70,...'Verbose',false,...'Plots','training-progress');
%使用训练数据训练网络```python
net = trainNetwork(imdsTrain,layers,options);
%对验证图像进行分类并计算准确度
YPred = classify(net,imdsValidation);
YValidation = imdsValidation.Labels;accuracy = sum(YPred == YValidation)/numel(YValidation);
运行结果:
图 2 运行结果-1
图 3 运行结果-2
基于神经网络的分类设计——模式识别实验相关推荐
- 基于matlab fir数字滤波器设计 程序流程图,实验五:FIR数字滤波器设计与软件实现...
实验五:FIR 数字滤波器设计与软件实现 一.实验目的 (1)掌握用窗函数法设计FIR 数字滤波器的原理和方法. (2)掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法. (3)掌握FIR 滤 ...
- 基于神经网络的控制器设计与仿真
这个部分,主要是通过给定模型的输入和输出,然后通过网络进行训练,得到神经网络的辨识参数. 对于网络辨识部分,其基本构架如下所示: 上述的辨识结构,通过控制对象的输入和输出的延迟分别进入F网络和G网络, ...
- 计算机组成与系统结构实验-基于微程序控制的CPU设计
本文章主要是为了通俗的解释计算机组成实验的微程序汇编的实现方法: 实验目的 在掌握部件单元电路实验的基础上,初步了解如何基于微程序控制进行CPU设计. 实验软件 Dais-CMStudio 实验要求 ...
- 模式识别 实验四 手写数字识别的神经网络算法设计与实现
实验四 手写数字识别的神经网络算法设计与实现 一.实验目的 通过学习BP神经网络技术,对手写数字进行识别,基于结构的识别法及模板匹配法来提高识别率. 二.实验器材 PC机 matlab软件 三.实验内 ...
- Nat. Mach. Intell. | 基于神经网络的迁移学习用于单细胞RNA-seq分析中的聚类和细胞类型分类...
今天给大家介绍由美国宾夕法尼亚大学佩雷尔曼医学院生物统计学,流行病学和信息学系Jian Hu等人在<Nature Machine Intelligence>上发表了一篇名为"It ...
- 基于图神经网络的推荐系统,图神经网络算法分类
神经网络算法的三大类分别是? 神经网络算法的三大类分别是:1.前馈神经网络:这是实际应用中最常见的神经网络类型.第一层是输入,最后一层是输出.如果有多个隐藏层,我们称之为"深度"神 ...
- 基于人工神经网络的识别C语言,实验一基于人工神经网络的数码识别.doc
实验一基于人工神经网络的数码识别 <人工智能导论>课程 基于人工神经网络的数码识别 班级:计1103学号:201107010330姓名:贾梦洁 成绩评定:评阅老师:日 期: 实验报告正文一 ...
- 基于神经网络的文本分类(基于Pytorch实现)
<Convolutional Neural Networks for Sentence Classification> 作者:Yoon Kim 单位:New York University ...
- 基于FPGA的深度卷积神经网络的加速器设计
英文论文链接:http://cadlab.cs.ucla.edu/~cong/slides/fpga2015_chen.pdf 翻译:卜居 转载请注明出处:http://blog.csdn.net/k ...
- 【毕业设计_课程设计】基于神经网络学习的在线纸币识别【源码+论文】
文章目录 0 项目说明 1 项目说明 2 系统设计 2.1 设计要求 2.2 设计方案 3 效果展示 4 论文目录 5 项目工程 0 项目说明 基于神经网络学习的在线纸币识别 提示:适合用于课程设计或 ...
最新文章
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (五)
- mysql-视图、事物等
- 如何理性看待蚂蚁金服OceanBase刷新TPC-C纪录
- win10安装ubuntu系统出现的一些问题以及解决方案
- 大数据技术综合分析!数据采集与预处理
- eXosip注册函数与使用说明
- 算法学习(二十)——GAE
- vue标签上自定义动态背景图片
- Java - springboot获取电脑mac地址
- UVA 10451 Ancient Village Sports UVA 11909 Soya Milk UVA 11152 Colourful Flowers
- Axure制作幻灯片轮播案例
- 初识Android 制作一个简单的记账本
- 渗透测试-CS架构客户端
- 软装和硬装又有哪些不同?
- scrapy 爬取链家二手房数据
- 白下高新区妇联、科协举办亲子活动,小朋友们走进云创大数据
- sphinx在windows下的简单安装与使用
- 【PC】电子书阅读软件推荐
- 普通程序员,如何转为当前紧缺的大数据相关人才?
- mysql8.0怎么样_MySQL8.0初体验