主要内容

系列网络

系列网络深度学习

描述

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

创建

有几种方法可以创造一个系列网络目的:

笔记

了解其他预折磨网络,例如googlenetresnet50, 看普里德深度神经网络

特性

全部展开

网络图层,指定为a数组中。

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

数据类型:细胞

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

数据类型:细胞

对象的功能

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

例子

全部折叠

加载佩带的亚历纳特卷积神经网络并检查图层和类。

使用普雷雷定的AlexNet网络使用AlexNet..输出是一个系列网络目的。

网= alexnet
net =具有属性的串行网络:图层:[25×1 nnet.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

将数据加载为imageageAtastore.目的。

digitdatasetpath = fullfile(matlabroot,'工具箱'“nnet”......'nndemos'“nndatasets”“DigitDataset”);imds = imageageataStore(DigitDatasetPath,......'insertumbfolders',真的,......'labelsource''foldernames');

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

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

图numimages = 10000;perm = randperm(numimages,20);为了我= 1:20子图(4,5,i);imshow(imds.files {perm(i)});粗暴;结束

划分数据存储,以便培训集中的每个类别具有750个图像,并且测试集具有来自每个标签的剩余图像。

numtringfiles = 750;[IMDStrain,IMDSTEST] = SpliteachLabel(IMDS,NumtringFiles,'随机化');

splitEachLabel拆分图像文件digitdata.进入两个新数据存储,imdsTrainInmdstest.

定义卷积神经网络结构。

层= [......ImageInputLayer([28 28 1])卷积2dlayer(5,20)rululayer maxpooling2dlayer(2,'走吧',2)全连接列(10)SoftmaxLayer分类层];

将选项设置为带有动量的随机梯度下降的默认设置。在20处设置最大时期数,并以初始学习率为0.0001开始培训。

选项=培训选项(“个”......'maxepochs'20,......“InitialLearnRate”,1e-4,......“详细”,错误的,......'plots''培训 - 进步');

训练网络。

net = trainnetwork(Imdstrain,图层,选项);

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

Ypred =分类(网络,IMDSTEST);ytest = imdstest.labels;

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

精度= SUM(YPRED == YTEST)/ NUMEL(YTEST)
精度= 0.9420.

扩展能力

在R2016A介绍