1 APP的使用

(1)打开方式一

从Matlab工具栏APP处搜索Deep Network Designer点击打开,或者在命令行窗口输入命令:deepNetworkDesigner开启

(2)新建神经网络结构

拖动左侧的图标到中心工作区,然后点击连接图标

(3)使用现成的神经网络

举例使用alexnet,在窗口输入alexnet,提示没有安装的话,就点击红色中的附加资源管理器,点击安装就行。安装完成后,再次输入alexnet即可。然后再APP中点击导入,就会提示导入alexnet网络。

(4)检查网络结构是否正确

点击工具栏的分析,可以查看网络的结构,如果结构不对,会报错并红色的提示。

(5)生成代码代码

点击导出,选择导出生成代码。把layers的代码拷贝出来,这就是你网络结构的代码。

会生成实时脚本文件,layers就是我们搭建的神经网络,单独拷贝出来使用。

2 使用神经网络

2.1 简单例子

% 一个使用APP的Demo

% 加载数据集

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');

% 使用搭建的神经网络

layers = [ ...

imageInputLayer([28 28 1])

convolution2dLayer(5,20)

reluLayer

maxPooling2dLayer(2,'Stride',2)

fullyConnectedLayer(10)

softmaxLayer

classificationLayer];

% 配置训练参数

options = trainingOptions('sgdm', ...

'MaxEpochs',20,...

'InitialLearnRate',1e-4, ...

'Verbose',false, ...

'Plots','training-progress');

% 训练神经网络

net = trainNetwork(imdsTrain,layers,options);

% 使用神经网络,这是分类的例子。使用classify.搭配神经网络中的最后一层classificationLayer

% 如果是回归的神经网络,则神经网络的最后一层是regressionLayer,搭配predict使用,就是替换classify为predict

YPred = classify(net,imdsTest);

YTest = imdsTest.Labels;

accuracy = sum(YPred == YTest)/numel(YTest)

2.2 trainOptions

官方文档讲解

根据自己的训练需要,只选择需要的参数设定即可,不设定的就是执行默认值

options =

TrainingOptionsSGDM with properties:

Momentum: 0.9000

InitialLearnRate: 0.0100 % 初始学习率

LearnRateSchedule: 'piecewise' % 学习率周期

LearnRateDropFactor: 0.2000 % 学习率下降因子

LearnRateDropPeriod: 5 % 学习率下降周期

L2Regularization: 1.0000e-04 % L2正则化参数

GradientThresholdMethod: 'l2norm'

GradientThreshold: Inf % 梯度阈值

MaxEpochs: 20 % 最大epochs

MiniBatchSize: 64 % 最小batch大小

Verbose: 1 % 是否窗口打印训练进度

VerboseFrequency: 50

ValidationData: [] % 放入验证集数据和验证集标签

ValidationFrequency: 50 % 验证频率

ValidationPatience: Inf

Shuffle: 'once' % 打乱训练集的次数

CheckpointPath: ''

ExecutionEnvironment: 'auto' % 设置CPU或者GPU执行

WorkerLoad: []

OutputFcn: []

Plots: 'training-progress' % 是否显示训练可视化的过程图

SequenceLength: 'longest'

SequencePaddingValue: 0

SequencePaddingDirection: 'right'

DispatchInBackground: 0

ResetInputNormalization: 1

```

## 2.3 trainNetwork

[官方文档讲解](https://www.mathworks.com/help/deeplearning/ref/trainnetwork.html)

简单的使用格式如下,其他格式参考官方文档讲解

```matlab

net = trainNetwork(X,Y,layers,options)

% X是训练集的数据集,Y是训练集的标签集

2.4 predict和classify

这两个函数是用来调用神经网络模型的,用测试集去测试输出结果。predict函数搭配回归神经网络使用,就是神经网络的最后一层是regressionLayer,如2.1例子中42行就是替换classify为predict。classify函数搭配分类神经网络,就是神经网络中的最后一层是classificationLayer。

result = classify(net,testData)

% 第一个参数是训练的网络模型

% 第二个参数是测试的数据

% result表示用神经网络处理TestData最终的输出结果

3 参数选择原则

(1)首先开发一个过拟合的模型

• 添加更多的层

• 让每一层变得更大

• 训练更多的轮次

(2)然后抑制过拟合

• dropout

• 正则化

• 图像增强

(3)再次调节超参数

• 学习速率

• 隐藏层单元数

• 训练轮次

超参数的选择是一个经验不断测试的结果,经典机器学习的方法,如特征工程、增加训练数据要做交叉验证。

4 构建网络的总原则

• 增大网络容量,直到过拟合

• 采取措施抑制过拟合

• 继续增大网络容量,直到过拟合

matlab用app建立神经网络,Matlab Deep Network Designer APP搭建神经网络及相关函数讲解...相关推荐

  1. Matlab Deep Network Designer APP搭建神经网络及相关函数讲解

    目录 1 APP的使用 2 使用神经网络 2.1 简单例子 2.2 trainOptions 2.4 predict和classify 3 参数选择原则 4 构建网络的总原则 1 APP的使用 (1) ...

  2. 循环神经网络(Recurrent Neural Network, RNN)和递归神经网络(Recursive Neural Network, RNN),你搞清楚了吗?

    一,循环神经网络: 原文:https://zybuluo.com/hanbingtao/note/541458 语言模型 RNN是在自然语言处理领域中最先被用起来的,比如,RNN可以为语言模型来建模. ...

  3. 深度学习神经网络各网络简介及资料汇总 (matlab :deep network designer )

    该介绍包括matlab2022a deepNetworkDesigner 中提供各种预训练的网络模型介绍 SqueezeNet (2016) SqueezeNet是Han等提出的一种轻量且高效的CNN ...

  4. matlab ia模块,MathWorks发布MATLAB和SimulinkR2020a版本,为工程师和科学家提供更多AI功能...

    MathWorks发布MATLAB和SimulinkR2020a版本,为工程师和科学家提供更多AI功能 2020-05-06 环球汽车网 转载 浏览:1912 [行业动态] 半年一次的发行版还包括新产 ...

  5. matlab安装到U盘,matlab u盘便携移动版

    Matlab u盘便携移动版是一款功能强大的编程工具,能够帮助用户轻松进行各种数据的开发分析工作,提高编程效率,让工作更加轻松.软件为U盘便携版本,插入U盘即可直接使用,无需环境的组装,满足用户的各种 ...

  6. 循环神经网络(Recurrent Neural Network)详解

    循环神经网络(RNNs)是神经网络中一个大家族,它们主要用于文本.信号等序列相关的数据.常见的循环神经网络有长短期记忆网络(LSTM).门控循环单元网络(GRU)等,而这些循环神经网络都是在最早的一种 ...

  7. 卷积神经网络(Convolutional Neural Network, CNN)

    卷积神经网络(Convolutional Neural Network, CNN) 目录 卷积神经网络(Convolutional Neural Network, CNN) 概述: 结构: 卷积层:

  8. 脉冲神经网络:MATLAB实现脉冲神经网络(Spiking Neural Network,SNN) 用于图像分类(提供MATLAB代码)

    一.脉冲神经网络 脉冲神经网络 (Spiking Neural Network,SNN) ,是第三代神经网络.其旨在弥合神经科学和机器学习之间的差距,使用最拟合生物神经元机制的模型来进行计算,更接近生 ...

  9. 循环神经网络matlab程序设计,神经网络及深度学习(包含matlab代码).pdf

    神经网络及深度学习(包含matlab代码) 神经网络及深度学习 (包含 MATLAB 仿真) 人工神经网络(Artificial Neural Network,即 ANN ), 作为对人脑最简单的一种 ...

最新文章

  1. 在YII2框架中使用UEditor编辑器发布文章
  2. 试卷批分(c++打表版)
  3. VTK:可视化之ComplexV
  4. 22个值得收藏的android开源码-UI篇
  5. windows下共享文件夹在Linux下打开
  6. 装配图位置偏转怎么调整_物理微课|匀变速直线运动、电容器动态分析及磁偏转技巧、方法、模型...
  7. 常量指针、指针常量以及指向常量的指针常量
  8. 数据结构 快速排序的三种实现 (hoare版本 挖坑法 前后指针版本)与非递归实现
  9. JavaScript:new关键字的执行过程
  10. 【AHOI2009】【BZOJ1798】Seq 维护序列seq(线段树模板,易错提醒)
  11. 基于遗传算法自动化集装箱码头多载AGV调度(一)—模型搭建
  12. bootstrap的三角方向符号实现
  13. linux系统安全加固
  14. OPPO R7C刷机包下载_OPPO r7c原厂固件包下载地址
  15. opengl纹理过滤
  16. 保持numlock处于开启状态
  17. 贝叶斯神经网络 BNN
  18. VR系列--资料汇总
  19. Python爬虫(第三周)
  20. 斐波那契查找(黄金分割法)超详细详解

热门文章

  1. 西部数据3TB绿盘公开展示
  2. 又一款Nginx 管理可视化神器!通过界面完成配置监控,一条龙!
  3. 活体识别1:近红外(NIR)图像特性
  4. tkinter绘制组件(9)——点状等待框
  5. 以题促学02_matplotlib画图_墨尔本1981年至1990年的每月温度情况折线图
  6. 政考网:省考上岸,2021国考有希望吗?
  7. ogg格式文件转换为MP3格式
  8. EXCEL函数VLOOKUP应用详解
  9. python脚本,检测域名是否被注册
  10. Docker篇-Centos7 docker构建基础镜像(centos+jdk1.8+maven3+git)