赞
踩
网上已具有大量卷积神经网络的讲解,故本文不在对此赘述,这篇文章针对已了解CNN基础结构和原理者,以一个例子搭建一个简单的卷积神经网络,作为正式迈入深度学习的第一步。
我们以深度学习最经典的案例——手写数字的识别,和一种经典的CNN——LeNet进行本次学习。
Matlab的功能十分强大,其自带的深度学习工具箱可以使我们免于编写底层算法,迅速地搭建出一个卷积神经网络,同时,其自带手写数字图片以供学习,地址如下,笔者使用的是Matlab2022a。
我们将DigitDataset拷贝到当前编写代码的文件夹下,并删除其中包含两个Excel即可得到下列图片。
第一步,加载手写数字样本图片,代码如下:
- clear
- clc
-
- % 第一步:加载手写数字样本
- imds = imageDatastore( ...
- 'DigitDataset', ...
- 'IncludeSubfolders',true, ...
- 'LabelSource','foldernames');
'IncludeSubfolders',true:包含每个文件夹中的所有文件和子文件夹;
'LabelSource','foldernames':根据文件夹名称分配标签并储存在Labels属性中。
第二步,将样本划分为训练集和测试集,并统计分类数量,代码如下:
- % 第二步:
- % 将样本划分为训练集与测试集
- [imdsTrain,imdsValidation] = splitEachLabel(imds,0.7);
-
- % 统计训练集中分类标签的数量
- numClasses = numel(categories(imdsTrain.Labels));
imdsTrain为训练样本数据,imdsValidation为验证样本数据,0.7为训练样本的比例。
第三步,构建LeNet并进行可视化分析,代码如下:
% 第三步:构建LeNET卷积网络并进行分析
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。