【MATLAB深度学习工具 deepNetworkDesigner的使用 包涵实例手写数字识别和LSTM预测完整代码 】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、打开方式
- 二、 功能和构成
- 三、应用实例
- 1.手写数字识别
- 2.基于MATLAB的LSTM预测ENSO海温在全球变暖下的变化
- 总结
前言
介绍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: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');% 训练神经网络ile = gpuArray(0.0001);net = trainNetwork(imdsTrain,layers,options);% 使用神经网络,这是分类的例子。使用classify.搭配神经网络中的最后一层classificationLayer% 如果是回归的神经网络,则神经网络的最后一层是regressionLayer,搭配predict使用,就是替换classify为predictYPred = classify(net,imdsTest);
YTest = imdsTest.Labels;
accuracy = sum(YPred == YTest)/numel(YTest)
测试结果
数据集下载地址:MNIST手写数字集
可直接识别A4纸上数字的完整代码下载地址基于BP神经网络手写数字识别系统
2.基于MATLAB的LSTM预测ENSO海温在全球变暖下的变化
厄尔尼诺-南方涛动(ENSO)是影响全球极端气候的重要因子,因此预估ENSO海温在全球变暖下的变化也是预估未来全球变暖下全球极端气候变化的重要因素之一。遗憾的是,最近20年来多次的全球耦合模式比较计划(CMIP)尽管对气候平均态和ENSO本身的模拟都取得了长足的进步,但是对未来增暖情形下ENSO海温异常强度的变化都存在显著的模式间差异。最近CMIP5预估的ENSO海温增强或减弱的模式个数基本相当,模式间的标准差远大于多模式集合平均的结果。因此揭示各模式预估ENSO海温振幅变化存在显著差异的核心物理过程是未来进一步改进模式、提高模式预估可信度的必要途径。
代码如下(示例):
close all;clear all;clc;
rand('seed',10); %设置随机数种子
%% I.加载数据
load enso
data_x=month';
data_y=pressure';
%% II.数据预处理
mu=mean(data_y);%计算均值
sig=std(data_y);%计算标准差
data_y=(data_y-mu)/sig;%数据归一化
%% III.数据准备
wd=5;
len=numel(data_y);%计算data_y中元素数目
wdata=[];
for i=1:1:len-wddi=data_y(i:i+wd);wdata=[wdata;di];
end
wdata_origin=wdata;
index_list=randperm(size(wdata,1));%整数随机排序
ind=round(0.8*length(index_list));%四舍五入
train_index=index_list(1:ind);
test_index=index_list(ind+1:end);
train_index=sort(train_index);
test_index=sort(test_index);%% IV.划分训练集、测试集的数据和标签
dataTrain=wdata(train_index,:);
dataTest=wdata(test_index,:);
XTrain=dataTrain(:,1:end-1)';
YTrain=dataTrain(:,end)';
XTest=dataTest(:,1:end-1)';
YTest=dataTest(:,end)';%% V.网络构建
layers=get_lstm_net(wd);
options=trainingOptions('adam',...'MaxEpochs',1000,...'GradientThreshold',1,...'InitialLearnRate',0.005, ...'LearnRateSchedule','piecewise',...'LearnRateDropPeriod',125,...'LearnRateDropFactor',0.2,...'Verbose',0,...'Plots','training-progress');%% VI.训练
net=trainNetwork(XTrain,YTrain,layers,options);
%% VII.测试
Xall=wdata_origin(:,1:end-1)';
Yall=wdata_origin(:,end)';
YPred=predict(net,Xall,'MiniBatchSize',1);
rmse=mean((YPred(:)-Yall(:)).^2);%% VIII.显示
figure,
subplot(2,1,1)
plot(data_x(1:length(Yall)),Yall)
hold on;
plot(data_x(1:length(Yall)),YPred,'.-')
hold off;
legend(['Real','Predict'])
ylabel('Data')
title(sprintf('LSTM分析-RMSE=%.2f',rmse));
subplot(2,1,2)
stem(data_x(1:length(Yall)),YPred-Yall)
xlabel('Time');ylabel('Error');
title('LSTM分析-误差图');
网络结构函数
function layers=get_lstm_net(wd)
%网络架构
numFeatures=wd;
numResponses=1;
numHiddenUnits=250;layers=[sequenceInputLayer(numFeatures)lstmLayer(numHiddenUnits)dropoutLayer(0.1)lstmLayer(2*numHiddenUnits)dropoutLayer(0.1)fullyConnectedLayer(numResponses)regressionLayer];end
预测结果
总结
以上就是今天要讲的内容,本文仅仅简单介绍了MATLAB深度学习工具的使用,并提供了两个实例。
【MATLAB深度学习工具 deepNetworkDesigner的使用 包涵实例手写数字识别和LSTM预测完整代码 】相关推荐
- 深度学习笔记:01快速构建一个手写数字识别系统以及张量的概念
深度学习笔记:01快速构建一个手写数字识别系统 神经网络代码最好运行在GPU中,但是对于初学者来说运行在GPU上成本太高了,所以先运行在CPU中,就是慢一些. 一.安装keras框架 使用管理员模式打 ...
- 深度学习之基于CNN实现汉字版手写数字识别(Chinese-Mnist)
Mnist数据集是深度学习入门的数据集,昨天发现了Chinese-Mnist数据集,与Mnist数据集类似,只不过是汉字数字,例如'一'.'二'.'三'等,本次实验利用自己搭建的CNN网络实现Chin ...
- 深度学习入门项目:PyTorch实现MINST手写数字识别
完整代码下载[github地址]:https://github.com/lmn-ning/MNIST_PyTorch.git 目录 一.MNIST数据集介绍及下载地址 二.代码结构 三.代码 data ...
- 深度学习案例之基于 CNN 的 MNIST 手写数字识别
一.模型结构 本文只涉及利用Tensorflow实现CNN的手写数字识别,CNN的内容请参考:卷积神经网络(CNN) MNIST数据集的格式与数据预处理代码input_data.py的讲解请参考 :T ...
- 【FPGA教程案例100】深度学习1——基于CNN卷积神经网络的手写数字识别纯Verilog实现,使用mnist手写数字数据库
FPGA教程目录 MATLAB教程目录 ---------------------------------------- 目录 1.软件版本 2.CNN卷积神经网络的原理 2.1 mnist手写数字数 ...
- 【深度学习】学习案例:Keras 多层感知器手写数字识别
实验:Keras 多层感知器 手写数字识别 1. 下载 MNIST数据集(前提) 2. 进行数据预处理 3. 建立模型 4. 进行训练 5. 以测试数据评估模型 6. 进行预测 拓展: 1. 显示混淆 ...
- 学习笔记CB009:人工神经网络模型、手写数字识别、多层卷积网络、词向量、word2vec...
人工神经网络,借鉴生物神经网络工作原理数学模型. 由n个输入特征得出与输入特征几乎相同的n个结果,训练隐藏层得到意想不到信息.信息检索领域,模型训练合理排序模型,输入特征,文档质量.文档点击历史.文档 ...
- 神经网络和深度学习(二)——一个简单的手写数字分类网络
本文转自:https://blog.csdn.net/qq_31192383/article/details/77198870 一个简单的手写数字分类网络 接上一篇文章,我们定义了神经网络,现在我们开 ...
- 深度学习理论与实践第二章作业-FNN手写数字识别
命名格式:按照课程网站中的课后作业要求 1. 根据Course02课程中对全连接神经网络的讲解,将缺失的全连接神经网络中代码块补全,并完成一次训练 需要填充的部分已经在第一部分的全连接神经网络代码中用 ...
- 2.7mnist手写数字识别之训练调试与优化精讲(百度架构师手把手带你零基础实践深度学习原版笔记系列)
2.7mnist手写数字识别之训练调试与优化精讲(百度架构师手把手带你零基础实践深度学习原版笔记系列) 目录 2.7mnist手写数字识别之训练调试与优化精讲(百度架构师手把手带你零基础实践深度学习原 ...
最新文章
- 利用GBDT模型构造新特征具体方法
- python可视化使用_python可视化pyecharts
- Google开源新AI模型,语音区分准确率92%创新高 | 论文+GitHub
- 【等价变换】—— 指数对数函数
- HTML图片热点及表单
- Python面向对象:类
- 【CCF】关于NOI Online测试有关事项的问答
- Hologres数据迁移之holo-shipper
- 最新2021计算机排名中国大学排名,2020-2021年计算机类专业排名_中国大学本科教育按专业类排行榜_中国科教评价网...
- Riverbed助力富邦人寿在市场竞争和数字化进程中抢占先机
- php 考试试题id,【模考来啦】2021年3月21日时政试题四大考点
- 【聚英云农】无线节水灌溉系统应用智慧农业
- 关于Navicat 连接 RDS数据库
- GPG Overview
- java applet 打印_applet 打印常见问题与解决方法
- 飞机游戏中子弹与飞机的移动与边界源码
- 职业梦想是计算机的英语作文,我梦想的职业高中英语作文
- 【Django毕业设计源码】Python旧衣物捐赠系统的设计与实现
- STM32 超声波测距模块HC-SR04 驱动
- 工程打包是什么意思_承包、发包、分包各是什么意思?
热门文章
- 【Axure图标库】Unicons线形字体图标库1200+ 与FontAwesome同类
- div+css布局实现个人网页设计(HTML期末作业)
- 计算机组成与结构学的是什么内容,计算机组成与体系结构教学大纲.doc
- 视频教程-ThinkPHP5.0项目实战-PHP
- 立创EDA封装命名规范参考
- 线性反馈移位寄存器(LFSR,Linear Feedback Shift Register)
- 2017 Material design 第三章第四节《字体与排版》
- php旧物交易开源代码_二手市场交易网站PHP
- Officescan防毒墙安装部署
- 解码隆基模式:光伏企业的百亿成长之路