文档

SeriesNetwork

深度学习系列网络

描述

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

创建

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

请注意

要了解其他预先训练的网络,例如googlenetresnet50,请参阅预训练卷积神经网络

属性

全部展开

网络层,指定为数组中。

对象的功能

激活 计算卷积神经网络层激活
分类 使用经过训练的深度学习神经网络对数据进行分类
预测 使用训练有素的深度学习神经网络预测反应
predictAndUpdateState 使用经过训练的循环神经网络预测反应并更新网络状态
classifyAndUpdateState 使用训练过的循环神经网络分类数据并更新网络状态
resetState 重置循环神经网络的状态

例子

全部折叠

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

加载预先训练的AlexNet网络使用alexnet.输出是一个SeriesNetwork对象。

网= alexnet
net = SeriesNetwork属性:层:[25×1 nnet.cnn.layer.Layer]

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

网。层
ans = 25x1有图层的图层数组:227 x227x3数据的图像输入图像的zerocenter正常化2 conv1卷积96年11 x11x3旋转步[4 4]和填充[0 0]3‘relu1 ReLU ReLU 4 norm1的横通道正常化横通道正常化与5频道/元素5“pool1”马克斯池3 x3马克斯池步(2 - 2)和填充[0 0]6“conv2”卷积256 5 x5x48旋转步[1]和填充(2 2]7‘relu2 ReLU ReLU 8 norm2的横通道正常化横通道正常化与5频道/元素9“pool2”马克斯池3 x3马克斯池步(2 - 2)和填充[0 0]384 3 x3x256 conv3的卷积运算与步幅[1]和填充[1]11‘relu3 ReLU ReLU 12 conv4卷积384 3 x3x192旋转步[1]和填充[1]13的relu4 ReLU ReLU 14 conv5卷积256 3 x3x192旋转步[1]和填充[1]15 ' relu5 ReLU ReLU 16“pool5”马克斯池3 x3 Max池步(2 - 2)和填充[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“鲤鱼”,“金鱼”,998其他的类

类名,可以查看网络学习的类名一会分类输出层(最后一层)的属性。通过选择前10个元素查看前10个类。

net.Layers(结束).ClassNames (1:10)
ans = 1×10细胞阵列1至4列'tench' '金鱼' 'great white shark' 'tiger shark' 5至9列'hammerhead' 'electric ray' 'stingray' 'cock' 'hen' 10列'ostrich' '鸵鸟'

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

protofile =“digitsnet.prototxt”

导入网络层。

层= importCaffeLayers (protofile)
图层= 1x7的图层数组: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”);imd = imageDatastore (digitDatasetPath,...“IncludeSubfolders”,真的,...“LabelSource”“foldernames”);

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

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

figure 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([28 28 1])卷积2dlayer (5,20) reluLayer maxPooling2dLayer(2,“步”,2) fullconnectedlayer (10) softmaxLayer classificationLayer];

将选项设置为随机梯度下降的默认设置。将epoch的最大值设置为20个,以0.0001的初始学习速率开始训练。

选择= trainingOptions (“个”...“MaxEpochs”, 20岁,...“InitialLearnRate”1的军医,...“详细”0,...“阴谋”“训练进步”);

培训网络。

网= trainNetwork (imdsTrain层,选项);

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

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

计算的准确性。准确率是测试数据中与分类相匹配的真实标签的数量之比分类,表示测试数据中图像的个数。

* * * * * * * * * * * * * * * * * * * * * *
精度= 0.9892

介绍了R2016a

这个话题有用吗?