Matlab深度学习入门实例:从0搭建卷积神经网络CNN(附完整代码)

慈云数据 2024-03-18 技术支持 80 0

网上已具有大量卷积神经网络的讲解,故本文不在对此赘述,这篇文章针对已了解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卷积网络并进行分析
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon