Main Content

connectLayers

ニューラル ネットワークの層の結合

説明

netUpdated = connectLayers(net,s,d) は、結合元の層 sdlnetwork オブジェクト net に含まれる結合先の層 d に結合します。更新されたネットワーク netUpdated には net と同じ層が含まれ、結合が新しく含まれます。

すべて折りたたむ

空のニューラル ネットワーク dlnetwork オブジェクトを作成します。さらに、2 つの入力があり、名前が 'add' である加算層を追加します。

net = dlnetwork;
layer = additionLayer(2,'Name','add');
net = addLayers(net,layer);

ニューラル ネットワークに 2 つの ReLU 層を追加し、これらの層を加算層に結合します。加算層は、ReLU 層の出力の総和を出力します。

layer = reluLayer('Name','relu1');
net = addLayers(net,layer);
net = connectLayers(net,'relu1','add/in1');

layer = reluLayer('Name','relu2');
net = addLayers(net,layer);
net = connectLayers(net,'relu2','add/in2');

更新されたネットワークをプロットで可視化します。

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 オブジェクトとして指定します。

結合元。文字ベクトルまたは string スカラーとして指定します。

  • 結合元の層に 1 つの出力がある場合、s は層の名前です。

  • 結合元の層に複数の出力がある場合、s は層の名前で、その後に文字 "/"、さらに層出力の名前が続きます ("layerName/outputName")。

例: "conv"

例: "mpool/indices"

結合先。string スカラーまたは文字ベクトルとして指定します。

  • 結合先の層に 1 つの入力がある場合、d は層の名前です。

  • 結合先の層に複数の入力がある場合、d は層の名前で、その後に文字 "/"、さらに層入力の名前が続きます ("layerName/inputName")。

例: "fc"

例: "add/in1"

出力引数

すべて折りたたむ

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

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

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

バージョン履歴

R2017b で導入

すべて展開する