主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

addLayers

向神经网络添加层

说明

netUpdated = addLayers(net,layers)layers 中的网络层添加到 dlnetwork 对象 net 中。更新后的网络 netUpdated 包含 net 的层和连接以及 layers 中的层,它们按顺序连接。layers 中的层名称必须唯一,不能为空,且不能与 net 中的层名称相同。

示例

示例

全部折叠

创建一个空的神经网络和一个层数组。addLayers 函数按顺序连接各层。

net = dlnetwork;

layers = [
    imageInputLayer([32 32 3])  
    convolution2dLayer(3,16,Padding="same")
    batchNormalizationLayer
    reluLayer];

net = addLayers(net,layers);

查看图中的神经网络。

figure
plot(net)

Figure contains an axes object. The axes object contains an object of type graphplot.

定义一个双输出神经网络,该神经网络在给定二维图像作为输入的情况下预测分类标签和数值。

指定类和响应的数量。

numClasses = 10;
numResponses = 1;

创建一个空的神经网络。

net = dlnetwork;

定义网络主分支的各层和 softmax 输出。

layers = [
    imageInputLayer([28 28 1],Normalization="none")

    convolution2dLayer(5,16,Padding="same")
    batchNormalizationLayer
    reluLayer(Name="relu_1")

    convolution2dLayer(3,32,Padding="same",Stride=2)
    batchNormalizationLayer
    reluLayer
    convolution2dLayer(3,32,Padding="same")
    batchNormalizationLayer
    reluLayer

    additionLayer(2,Name="add")

    fullyConnectedLayer(numClasses)
    softmaxLayer(Name="softmax")];

net = addLayers(net,layers);

添加跳过连接。

layers = [
    convolution2dLayer(1,32,Stride=2,Name="conv_skip")
    batchNormalizationLayer
    reluLayer(Name="relu_skip")];

net = addLayers(net,layers);
net = connectLayers(net,"relu_1","conv_skip");
net = connectLayers(net,"relu_skip","add/in2");

为回归输出添加全连接层。

layers = fullyConnectedLayer(numResponses,Name="fc_2");
net = addLayers(net,layers);
net = connectLayers(net,"add","fc_2");

查看图中的神经网络。

figure
plot(net)

Figure contains an axes object. The axes object contains an object of type graphplot.

输入参数

全部折叠

神经网络,指定为 dlnetwork 对象。

网络层,指定为 Layer 数组。

有关内置层的列表,请参阅深度学习层列表

输出参量

全部折叠

更新后的网络,以未初始化的 dlnetwork 对象形式返回。

要初始化 dlnetwork 对象的可学习参数,请使用 initialize 函数。

addLayers 函数不会保留量化信息。如果输入网络是量化网络,则输出网络不包含量化信息。

版本历史记录

在 R2017b 中推出

全部展开