メインコンテンツ

addInputLayer

ネットワークに入力層を追加する

R2022b 以降

    説明

    netUpdated = addInputLayer(net,layer) は、入力層を net 内の最初の未接続入力に接続することにより、net ネットワークに入力層 layer を追加します。更新されたネットワークが自動初期化をサポートしている場合、関数はネットワークの学習可能なパラメーターを自動的に初期化します。

    netUpdated = addInputLayer(net,layer,inputName) は、この関数が入力層にどの未接続入力を接続するかも指定します。

    netUpdated = addInputLayer(___,Initialize=tf) は、前述の構文のいずれかを使用して出力ネットワークを初期化するかどうかも指定します。

    すべて折りたたむ

    入力層を持たず、初期化されていない dlnetwork オブジェクトを作成します。

    layers = [
        convolution2dLayer(5,20)
        reluLayer
        maxPooling2dLayer(2,Stride=2)
        fullyConnectedLayer(10)
        softmaxLayer];
    
    net = dlnetwork(layers,Initialize=false)
    net = 
      dlnetwork with properties:
    
             Layers: [5×1 nnet.cnn.layer.Layer]
        Connections: [4×2 table]
         Learnables: [4×3 table]
              State: [0×3 table]
         InputNames: {'conv'}
        OutputNames: {'softmax'}
        Initialized: 0
    
      View summary with summary.
    
    

    入力サイズが [28 28 1] のイメージ入力層を作成します。

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

    入力層をネットワークに追加します。

    net = addInputLayer(net,layer)
    net = 
      dlnetwork with properties:
    
             Layers: [6×1 nnet.cnn.layer.Layer]
        Connections: [5×2 table]
         Learnables: [4×3 table]
              State: [0×3 table]
         InputNames: {'imageinput'}
        OutputNames: {'softmax'}
        Initialized: 1
    
      View summary with summary.
    
    

    Initialized プロパティを表示します。ネットワークには初期化に必要なすべての情報が含まれているため、出力ネットワークは初期化されます。

    net.Initialized
    ans = logical
       1
    
    

    2 つの未接続の入力をもつ未初期化の dlnetwork オブジェクトを作成します。

    layers = [
        convolution2dLayer(5,16,Name="conv")
        batchNormalizationLayer
        reluLayer
        fullyConnectedLayer(50)
        flattenLayer
        concatenationLayer(1,2,Name="cat")
        fullyConnectedLayer(10)
        softmaxLayer];
    
    net = dlnetwork(layers,Initialize=false);

    畳み込み層に接続するイメージ入力層を作成します。

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

    イメージ入力層を "conv" 層に接続します。ネットワークにはネットワークを初期化するために必要な情報が含まれていないため、返されるネットワークは初期化されていません。

    net = addInputLayer(net,layer,"conv")
    net = 
      dlnetwork with properties:
    
             Layers: [9×1 nnet.cnn.layer.Layer]
        Connections: [8×2 table]
         Learnables: [8×3 table]
              State: [2×3 table]
         InputNames: {'imageinput'  'cat/in2'}
        OutputNames: {'softmax'}
        Initialized: 0
    
      View summary with summary.
    
    

    連結層の 2 番目の入力に接続する特徴入力層を作成します。

    layer = featureInputLayer(1);

    特徴入力層を "cat" 層の "in2" 入力に接続します。ネットワークにはネットワークを初期化するために必要な情報が含まれるようになったため、返されるネットワークは初期化されます。

    net = addInputLayer(net,layer,"cat/in2")
    net = 
      dlnetwork with properties:
    
             Layers: [10×1 nnet.cnn.layer.Layer]
        Connections: [9×2 table]
         Learnables: [8×3 table]
              State: [2×3 table]
         InputNames: {'imageinput'  'input'}
        OutputNames: {'softmax'}
        Initialized: 1
    
      View summary with summary.
    
    

    ネットワークをプロットで可視化します。

    figure
    plot(net)

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

    入力引数

    すべて折りたたむ

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

    追加する入力層。Layer オブジェクトとして指定します。

    関数が層を接続する未接続のネットワーク入力。string スカラー、文字ベクトル、または文字ベクトルを含む cell 配列として指定します。

    データ型: char | string | cell

    出力ネットワークの学習可能なパラメーターを初期化するフラグ。次のいずれかの値として指定します。

    • "auto" — 初期化に必要なすべての情報がネットワークに含まれている場合、関数は出力ネットワークを初期化します。それ以外の場合、関数は出力ネットワークを初期化しません。

    • 1 (true) — 出力ネットワークを初期化します。初期化に必要なすべての情報がネットワークに含まれていない場合、関数はエラーになります。

    • 0 (false) — 出力ネットワークを初期化しません。

    出力引数

    すべて折りたたむ

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

    この関数は、入力層が、接続されている層の直前に表示されるように、ネットワークの Layers プロパティ内の層を並べ替えます。

    バージョン履歴

    R2022b で導入