指定卷积神经网络的层
您可以通过各种方式构建和自定义深度学习模型 - 例如,您可以导入和调整预训练模型,从头构建网络,或将深度学习模型定义为函数。
在大多数情况下,您可以将许多类型的深度学习模型指定为一个包含多个层的神经网络,然后使用 trainnet 函数对其进行训练。有关层列表以及如何创建它们的信息,请参阅深度学习层列表。
对于层按顺序连接的简单神经网络,可以将架构指定为层数组。例如,要创建将 28×28 灰度图像分类为 10 个类的神经网络,您可以指定层数组:
layers = [
imageInputLayer([28 28 1])
convolution2dLayer(5,20)
batchNormalizationLayer
reluLayer
fullyConnectedLayer(10)
softmaxLayer];对于具有更复杂结构的神经网络,例如具有分支的神经网络,您可以将神经网络指定为 dlnetwork 对象。您可以分别使用 addLayers 和 connectLayers 函数添加和连接层。例如,要创建一个将成对的 224×224 RGB 和 64×64 灰度图像分为 10 个类的多输入网络,您可以指定神经网络:
net = dlnetwork;
layers = [
imageInputLayer([224 224 3])
convolution2dLayer(5,128)
batchNormalizationLayer
reluLayer
flattenLayer
concatenationLayer(1,2,Name="cat")
fullyConnectedLayer(10)
softmaxLayer];
net = addLayers(net,layers);
layers = [
imageInputLayer([64 64 1])
convolution2dLayer(5,128)
batchNormalizationLayer
reluLayer
flattenLayer(Name="flatten2")];
net = addLayers(net,layers);
net = connectLayers(net,"flatten2","cat/in2");figure plot(net)
对于无法指定为由层组成的网络的模型,可以将模型定义为函数。有关如何训练定义为函数的深度学习模型的示例,请参阅Train Network Using Model Function。
另请参阅
trainnet | trainingOptions | dlnetwork