主要内容

SeriesNetwork

深度学习系列网络

描述

序列网络是一种层次化的深度学习神经网络。它只有一个输入层和一个输出层。

创建

有几种方法可以创建SeriesNetwork对象:

请注意

了解其他预训练网络,例如googlenetresnet50,请参阅预训练深度神经网络

属性

全部展开

此属性是只读的。

网络层,指定为数组中。

此属性是只读的。

网络输入层名称,指定为字符向量的单元格数组。

数据类型:细胞

网络输出层名称,指定为字符向量的单元格数组。

数据类型:细胞

对象的功能

激活 计算深度学习网络层激活
分类 使用训练的深度学习神经网络对数据进行分类
预测 使用训练有素的深度学习神经网络预测反应
predictAndUpdateState 使用训练有素的递归神经网络预测反应并更新网络状态
classifyAndUpdateState 利用训练有素的递归神经网络对数据进行分类,并更新网络状态
重置状态 重置递归神经网络的状态
情节 绘制神经网络层图

例子

全部折叠

加载一个预先训练的AlexNet卷积神经网络并检查层和类。

使用加载预先训练的AlexNet网络阿列克斯内特.输出是一个SeriesNetwork对象

网= alexnet
net = SeriesNetwork with properties: Layers: [25×1 net.cnn.layer. layer]

使用属性,查看网络架构。该网络由25层组成。有8个具有可学习权值的层:5个卷积层和3个完全连接层。

net.Layers
ans = 25x1 Layer array with layers:227 x227x3数据的图像输入图像的zerocenter正常化2 conv1卷积96年11 x11x3旋转步[4 4]和填充[0 0 0 0]3‘relu1 ReLU ReLU 4“norm1”横通道正常化横通道规范化5频道每个元素5“pool1”马克斯池3 x3 Max池步(2 - 2)和填充[0 0 0 0]6conv2的分组卷积2组128 5 x5x48旋转步[1]和填充(2 2 2 2)7的relu2 ReLU ReLU 8 norm2的横通道正常化横通道正常化与5频道/元素9“pool2”马克斯池3 x3马克斯池步(2 - 2)和填充[0 0 0 0]384 3 x3x256 conv3的卷积运算步伐[1]和填充[1 1 1 1]11的relu3 ReLU ReLU 12“conv4”分组卷积2组192 3 x3x192旋转步[1]和填充[1 1 1 1]13的relu4 ReLU ReLU 14“conv5”分组卷积2组128 3 x3x192旋转步[1]和填充[1 1 1 1]15 ' relu5 ReLU ReLU 16 pool5马克斯池3 x3 Max池与步幅[2 2]和填充[0 0 0 0]17 fc6完全连接4096完全连接层18“relu6”ReLU ReLU 19“drop6”辍学50%辍学20 fc7完全连接4096完全连接层21“relu7”ReLU ReLU 22“drop7”辍学50%辍学23 fc8完全连接1000完全连接层24“概率”Softmax Softmax 25“输出”输出与'tench'和999其他类交叉

您可以通过查看属性的分类输出层(最后一层)。通过选择前10个元素来查看前10个类。

net.Layers(结束). class (1:10)
ans =10×1分类数组坦奇金鱼大白鲨虎鲨双髻鲨电鳐黄貂鱼公鸡母鸡鸵鸟

指定示例文件“digitsnet.prototxt”进口。

protofile =“digitsnet.prototxt”

导入网络层。

层= importCaffeLayers (protofile)
图层数组与图层:1“testdata”图像输入28 x28x1图片2的conv1卷积20 5 x5x1旋转步[1]和填充[0 0]3‘relu1 ReLU ReLU 4“pool1”马克斯池2 x2马克斯池步(2 - 2)和填充[0 0]5“ip1”完全连接10完全连接层6‘损失’Softmax Softmax 7“输出”分类输出crossentropyex class1,'class2', and 8 other classes

将数据加载为ImageDatastore对象

digitDatasetPath = fullfile (matlabroot,“工具箱”“nnet”...“nndemos”“nndatasets”“DigitDataset”);imds=图像数据存储(digitDatasetPath,...“包含子文件夹”,真的,...“标签源”“foldernames”);

该数据存储包含10000个数字从0到9的合成图像。图像是通过对使用不同字体创建的数字图像应用随机变换生成的。每个数字图像是28×28像素。数据存储包含每个类别相同数量的图像。

在数据存储中显示一些图像。

数字数字图像=10000;perm=randperm(数字图像,20);I = 1:20 subplot(4,5, I);imshow (imds.Files{烫发(i)});drawnow;结束

图中包含20个轴对象。轴对象1包含图像类型的对象。轴对象2包含图像类型的对象。轴对象3包含图像类型的对象。轴对象4包含图像类型的对象。轴对象5包含图像类型的对象。轴对象6包含图像类型的对象。轴对象7包含对象图像类型的对象。轴对象8包含图像类型的对象。轴对象9包含图像类型的对象。轴对象10包含图像类型的对象。轴对象11包含图像类型的对象。轴对象12包含图像类型的对象。轴对象13包含图像类型的对象。轴对象14包含图像类型的对象类型图像。轴对象15包含类型图像的对象。轴对象16包含类型图像的对象。轴对象17包含类型图像的对象。轴对象18包含类型图像的对象。轴对象19包含类型图像的对象。轴对象20包含类型图像的对象。

划分数据存储,使训练集中的每个类别有750幅图像,测试集中有来自每个标签的剩余图像。

numTrainingFiles = 750;[imdsTrain, imdsTest] = splitEachLabel (imd, numTrainingFiles“随机”);

splitEachLabel分割图像文件digitData进入两个新的数据存储,imdsTrainIMD测试

定义卷积神经网络结构。

层= [...imageInputLayer([28 28 1])卷积2dlayer (5,20) reluLayer maxPooling2dLayer(2, 20)“步”,2) fulllyconnectedlayer (10) softmaxLayer classificationLayer;

将动量随机梯度下降的选项设置为默认设置。设置最大纪元数为20,初始学习率为0.0001,开始训练。

选项=培训选项(“个”...“MaxEpochs”, 20岁,...“InitialLearnRate”1的军医,...“详细”错误的...“阴谋”“训练进步”);

培训网络。

net=列车网络(IMD列车、层、选项);

Figure Training Progress (01-Sep-2021 08:30:15)包含2个轴对象和另一个uigridlayout类型的对象。axis对象1包含6个类型为patch, text, line的对象。axis对象2包含6个类型为patch, text, line的对象。

在未用于训练网络的测试集中运行训练网络,并预测图像标签(数字)。

YPred=分类(净、imdsTest);YTest=imdsTest.标签;

计算的准确性。准确率是测试数据中与分类匹配的真标签数的比率分类到测试数据中的图像数量。

精度= sum(YPred == YTest)/numel(YTest)
精度=0.9404

扩展功能

介绍了R2016a