Main Content

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)

入力として与えられた 2 次元イメージの categorical ラベルと数値を両方予測する 2 出力ニューラル ネットワークを定義します。

クラスと応答の数を指定します。

numClasses = 10;
numResponses = 1;

空のニューラル ネットワークを作成します。

net = dlnetwork;

ネットワークの主分岐の層、およびソフトマックス出力を定義します。

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)

入力引数

すべて折りたたむ

ニューラル ネットワーク。dlnetwork オブジェクトとして指定します。

ネットワーク層。Layer 配列として指定します。

組み込み層の一覧については、深層学習層の一覧を参照してください。

出力引数

すべて折りたたむ

更新されたネットワーク。未初期化の dlnetwork オブジェクトとして返されます。

dlnetwork オブジェクトの学習可能なパラメーターを初期化するには、関数 initialize を使用します。

関数 addLayers は量子化情報を保持しません。入力ネットワークが量子化されたネットワークであった場合でも、出力ネットワークに量子化情報は含まれません。

バージョン履歴

R2017b で導入

すべて展開する