提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
介绍MATLAB深度学习工具使用方法,并提供了两个应用实例,第一个是手写数字识别,第二个是用LSTM预测海洋温度变化。文中给出了完整的代码。
提示:以下是本篇文章正文内容,下面案例可供参考
一、打开方式
1)在命令框输入deepNetworkDesigner;(推荐使用)
2)如下方式,通过点击图标的形式进入:
a.点击主页的APP:
b. 点击所标记的下拉三角箭头
c.输入deep即会出现Deep Network Designer。
- 实例1 手写数字识别
二、 功能和构成
(1)Layer库
网络net是由层Layer连接而成的。
Layer库是整个神经网络的基本组成单元,非常重要,所有复杂的神经网络均通过这些基本单元进行搭建。
Layer库一共有9种,不同的种类通过颜色进行区分,可以直接拖动到中间的设计区进行连接。
1)INPUT输入层
2)CONVOLUTION AND FULLY CONNECTED卷积和全连接层
3)SEQUENCE序列层
4)ACTIVATION激活层
5)NORMALIZATION AND UTILITY归一化层
6)POOLING池化层
7)COMBINATION组合层
8)OBJECT DETECTION目标检测层
9)OUTPUT输出层
(2)设计区
设计区包含了三个卡片,Designer,Data,Training。
其中在Designer中进行Layer组件的布局;
Data中导入训练数据;
Training中进行网络训练。
(3)Analyze功能
可以对设计的网络进行评估,包含warnings和errors。另外在分析的ANALYSIS RESULT区域可以看到各层的名称Name、类型Type、维度Activations和可学习的参数Learnables。
目前的情况是,可学习的参数只有卷积和全连接层中组件的Weights和Bias。其他各组件均无待学习参数,只有一些需要配置的超参数等。
(4)Export功能
export功能可以把设计的网络导出为一个对象,加载到Workspace中;或者导出生成代码到Live Editor中便于进一步处理。
三、应用实例
1.手写数字识别
代码如下(示例):
% 加载数据集
digitDatasetPath = fullfile(matlabroot,'toolbox','nnet', ...
'nndemos','nndatasets','DigitDataset');
imds = imageDatastore(digitDatasetPath, ...
'IncludeSubfolders',true, ...
'LabelSource','foldernames');
% 展示数据集
figure
numImages = 10000;
perm = randperm(numImages,20);
for i = 1:20
subplot(4,5,i);
imshow(imds.Files{
perm(i)});
end
% 划分数据集和测试集出来
numTrainingFiles = 750;
[imdsTrain,imdsTest] = splitEachLabel(imds,numTrainingFiles,'randomize')