SeriesNetwork

系列网络深度学习

描述

一系列网络是用于与层深学习神经网络一个设置在另一个之后。它有一个单一的输入层和单个输出层。

创建

有几种方法可以创建一个SeriesNetwork宾语:

请注意

要了解其他预训练的网络,如googlenetresnet50,请参阅预训练深层神经网络.

属性

展开全部

网络层,指定为阵列。

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

数据类型:细胞

网络输出层的名称,指定为字符向量的单元阵列。

数据类型:细胞

对象函数

激活 计算深度学习网络层激活
分类 使用经过训练的深度学习神经网络对数据进行分类
预测 使用经过训练的深度学习神经网络预测响应
predictAndUpdateState 预测使用受训回归神经网络响应和更新网络状态
classifyAndUpdateState 使用受训回归神经网络和更新网络状态进行分类数据
resetState 重置递归神经网络的状态
情节 积神经网络层图形

例子

全部收缩

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

使用预先训练的AlexNet网络加载alexnet.输出SeriesNetwork宾语。

净= alexnet
net = SeriesNetwork with properties: Layers:[25×1 nnet.cn .layer. layer]

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

net.Layers
ans = 25x1层数组与层: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马克斯池步(2 - 2)和填充[0 0 0 0]6“conv2”分组卷积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]10 conv3卷积384 3 x3x256旋转步[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)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“输出”分类输出crossentropyex“鲤鱼”和999其他的类

您可以通过查看查看由网络上了解到的类的名称分类输出层(最后的层)的性质。通过选择前10个元素观看第一10类。

net.Layers(端).Classes(1:10)
ANS =10×1阵列分类丁鲷金鱼大白鲨老虎鲨锤头电动射线魟公鸡母鸡鸵鸟

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

protofile =“digitsnet.prototxt”;

导入网络层。

层= importCaffeLayers(protofile)
层= 1X7层阵列层:1 'TESTDATA' 图像输入28x28x1图像2 'CONV1' 卷积20个5x5x1卷积步幅[1 1]和填充[0 0] 3 'relu1' RELU RELU 4 'POOL1' 最大池2x2的最大与步幅[2 2]和填充[0 0]汇集5 'IP1' 完全连接10完全连接层6 '损失' 使用SoftMax使用SoftMax 7 '输出' 分类输出crossentropyex与 '的Class1', '的Class2' 和8的其他类

将数据加载为ImageDatastore宾语。

digitDatasetPath = fullfile (matlabroot,'工具箱','NNET',...“nndemos”,'nndatasets','DigitDataset');IMDS = imageDatastore(digitDatasetPath,...'IncludeSubfolders',真的,...'LABELSOURCE',“foldernames”);

数据存储区中包含从0到9的图像的数字万个合成影像通过施加随机转换来使用不同的字体创建的数字图像被生成。每个数字图像是28逐28个像素。数据存储区中包含每个类别的图像的数目相等。

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

图numImages = 10000;烫发= randperm(numImages,20);i = 1:20 subplot(4,5,i);imshow (imds.Files{烫发(i)});结束

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

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

splitEachLabel分割图像文件digitData成两个新的数据存储,imdsTrainimdsTest.

定义卷积神经网络架构。

层= [...imageInputLayer([28281]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,“步”(10)软maxlayer classificationLayer];

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

选项= trainingOptions('SGDM',...“MaxEpochs”,20岁,...'InitialLearnRate'1的军医,...“放牧”,假,...“阴谋”,“训练进步”);

培训网络。

净= trainNetwork(imdsTrain,层,选项);

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

YPred =分类(净,imdsTest);YTest = imdsTest.Labels;

计算精度。精度是真实的标签数目的在测试数据匹配从分类的比率分类到的图像中的测试数据的数目。

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

扩展功能

介绍了R2016a