目录

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

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:20subplot(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)reluLayermaxPooling2dLayer(2,'Stride',2)fullyConnectedLayer(10)softmaxLayerclassificationLayer];
% 配置训练参数options = trainingOptions('sgdm', ...'MaxEpochs',20,...'InitialLearnRate',1e-4, ...'Verbose',false, ...'Plots','training-progress');% 训练神经网络net = trainNetwork(imdsTrain,layers,options);% 使用神经网络,这是分类的例子。使用classify.搭配神经网络中的最后一层classificationLayer% 如果是回归的神经网络,则神经网络的最后一层是regressionLayer,搭配predict使用,就是替换classify为predictYPred = classify(net,imdsTest);
YTest = imdsTest.Labels;
accuracy = sum(YPred == YTest)/numel(YTest)

2.2 trainOptions

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

options = TrainingOptionsSGDM with properties:Momentum: 0.9000InitialLearnRate: 0.0100      % 初始学习率LearnRateSchedule: 'piecewise' % 学习率周期LearnRateDropFactor: 0.2000            % 学习率下降因子LearnRateDropPeriod: 5                     % 学习率下降周期L2Regularization: 1.0000e-04    % L2正则化参数GradientThresholdMethod: 'l2norm'      GradientThreshold: Inf                   % 梯度阈值MaxEpochs: 20                    % 最大epochsMiniBatchSize: 64                    % 最小batch大小Verbose: 1                     % 是否窗口打印训练进度VerboseFrequency: 50ValidationData: []                    % 放入验证集数据和验证集标签ValidationFrequency: 50                    % 验证频率ValidationPatience: InfShuffle: 'once'            % 打乱训练集的次数CheckpointPath: ''    ExecutionEnvironment: 'auto'            % 设置CPU或者GPU执行WorkerLoad: []OutputFcn: []Plots: 'training-progress' % 是否显示训练可视化的过程图SequenceLength: 'longest'SequencePaddingValue: 0SequencePaddingDirection: 'right'DispatchInBackground: 0ResetInputNormalization: 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 Deep Network Designer APP搭建神经网络及相关函数讲解相关推荐

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

    1 APP的使用 (1)打开方式一 从Matlab工具栏APP处搜索Deep Network Designer点击打开,或者在命令行窗口输入命令:deepNetworkDesigner开启 (2)新建 ...

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

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

  3. Deep Learning:基于pytorch搭建神经网络的花朵种类识别项目(内涵完整文件和代码)—超详细完整实战教程

    基于pytorch的深度学习花朵种类识别项目完整教程(内涵完整文件和代码) 相关链接:: 超详细--CNN卷积神经网络教程(零基础到实战) 大白话pytorch基本知识点及语法+项目实战 文章目录 基 ...

  4. Clearing the Skies: A deep network architecture for single-image rain removal解读

    Clearing the Skies: A deep network architecture for single-image rain removal解读 Abstract 1.Introduct ...

  5. python 神经网络包_Python(neurolab搭建神经网络)

    Neurolab模块搭建神经网络 (一)neurolab模块下载与安装 neurolab是基于Python的人工神经网络包,包括基本神经网络和训练算法,其灵活的框架可用于创建其他类型的神经网络,neu ...

  6. 回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出

    回归预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多输入单输出 目录 回归预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多输入单输出 基本介绍 模型背景 C ...

  7. 《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》阅读笔记与实现

    今年过年之前,MSRA和Google相继在ImagenNet图像识别数据集上报告他们的效果超越了人类水平,下面将分两期介绍两者的算法细节. 这次先讲Google的这篇<Batch Normali ...

  8. Tri-Party Deep Network Representation

    Tri-Party Deep Network Representation 目标 方法 步骤 目标 将网络节点嵌入成向量. 另外,值得一提的是:本文所使用的是cora数据集,简单介绍就是一共有2708 ...

  9. 9行Python代码搭建神经网络

    9行Python代码搭建神经网络 Kaiser谈笑风生 4月前发表至趣味项目,5995次访问 原文:How to build a simple neural network in 9 lines of ...

最新文章

  1. 开发环境中实现Lombok消除Java冗余
  2. 修改系统默认区域语言日期格式
  3. 假笨说-从一起GC血案谈到反射原理
  4. 成功解决安装cuda的时候,下载的文件自动消失,并且出现An unknown error has occurred
  5. 杂七杂八(1)——如何查看本机的.NET Framework版本
  6. 许昌电气学校电话计算机,许昌电气职业学院
  7. RSA非对称加密算法之公钥和私钥详细介绍
  8. 关闭防火墙和selinux
  9. C++之STL之priority_queue
  10. Matlab--Figure界面工具栏使用简要说明
  11. 转:关掉Archlinux中烦人的响铃
  12. PHP中0、空、null和false的总结
  13. IBM服务器安装与HBA卡的驱动问题
  14. MAC编译OpenJDK8:iostream file not found(独家解决办法)
  15. visio 2010 激活方法
  16. 黑客(一):黑客守则
  17. RDKit | 基于RDKit 的化合物预处理
  18. 人工智能的现状与未来(附PPT)
  19. pagehelper版本升级导致pageSize为0时无法查询全部数据
  20. Acute Angle Cloud与Achain达成战略合作,共促区块链系统发展

热门文章

  1. Gitlab两个项目代码合并
  2. 换个姿势做运维!GOPS 2022 · 深圳站精彩内容抢先看
  3. 辛瓜地计算机体育英语,体育英语|射箭(Archery)
  4. Tomcat:The valid characters are defined in RFC 7230 and RFC 3986 问题处理
  5. C语言程序设计————学习知识归纳总结(三)
  6. 携手红帽拥抱开源,微软助力企业客
  7. 存储那些事儿(三):OpenStack的块存储Cinder与商业存储的融合
  8. Titan 的设计与实现
  9. GPU的发展史,GPU与CPU的关系是什么?为何现在GPU越来越重要?
  10. php大写数字转换,PHP将阿拉伯数字转换成汉字大写支持小数点