NetChain

NetChain[{layer1,layer2,}]

layeriの出力が layeri+1の入力と接続しているニューラルネットを指定する.

NetChain["name1"layer1,"name2"layer2,]

明示的に名前が付けられた層の鎖からなるネットを指定する.

詳細とオプション

  • NetChainの入力は第1層の入力であるとみなされる.
  • NetChainの出力は最終層の出力であるとみなされる.
  • 中間層はすべて,厳密に1つの入力と1つの出力のポートを持たなければならない.
  • NetChain[][data]は,ネットを data に適用した結果を与える.
  • NetChain[][data,NetPortGradient["Input"]]は入力データに対する出力の勾配を与える.
  • 第1層に2つ以上の入力ポートがある場合はNetChainも同じ入力ポートを持つ.
  • 最終層に2つ以上の出力ポートがある場合はNetChainも同じ出力ポートを持つ.
  • NetChainは,次の特別層指定をサポートする.
  • Ramp,LogisticSigmoid,ElementwiseLayer[f]
    nLinearLayer[n]
    {layer1,layer2,}NetChain[{layer1,layer2,}]
  • Normal[NetChain[]]は,鎖の構築に使用する層のリストまたは連想を返す.
  • NetChainStandardFormは,鎖の中の層の概要と各層の出力中の配列次元を示す.鎖の中の層をクリックすると,その層についてのその他の情報が表示される.
  • 次の任意のパラメータを含めることができる.
  • LearningRateMultipliersAutomatic訓練可能な配列の学習率乗数
  • 鎖の全体的な出力配列の形は,NetChain"Input"->shape オプションと"Output"->shape オプションを使って指定できる.
  • shape の可能な形
  • Real単一の実数
    "Integer"単一の整数
    Restricted["Integer",n]1から n までの整数
    Restricted["Integer",{m,n}]m から n までの整数
    n長さ n のベクトル
    {n1,n2,}次元 n1×n2×の配列
    "Varying"可変長ベクトル
    {"Varying",n2,n3,}可変長で次元 n2×n3×の配列
    NetEncoder[]エンコーダ(入力のための)
    NetEncoder[{,"Dimensions"{n1,}}]次元 n1×の配列にマップされたエンコーダ
    NetDecoder[]デコーダ(出力のための)
    NetDecoder[{,"InputDepth"n}}]階数 n の配列に適用されたデコーダ
    FeatureExtractorFunction[]特徴抽出器関数
  • Automaticとして与えられる任意の長さ niは,鎖の構造から推測される.
  • NetChain[][data,,opts]はネットを data に適用する際にオプションを使うように指定する.次は使用可能なオプションである.
  • BatchSizeAutomatic入力リストについて一度に評価する入力数
    NetEvaluationMode"Test"評価の実行にどのモードを使うか
    RandomSeedingAutomatic擬似乱数生成器がある場合はそれをどのようにシードするか
    TargetDevice"CPU"評価を行うターゲットデバイス
    WorkingPrecision"Real32"ネットの評価に使う数値精度
  • 次は,WorkingPrecisionの可能な設定である.
  • "Real32"単精度実数を使う (32-bit)
    "Real64"倍精度実数を使う (64-bit)
    "Mixed"ある種の操作に半精度実数を使う
  • WorkingPrecision->"Mixed"は,TargetDevice->"GPU"についてしかサポートされないが,この場合は,デバイスによっては極めて大きいパフォーマンスの向上が見られる.
  • NumericArrayが入力として与えられると,出力はNumericArrayになる.その場合,数値型はWorkingPrecisionから導かれる.
  • NetEvaluationMode->"Training"の設定のとき,DropoutLayer等の層は,通常評価のようにではなく訓練時のように動作する.
  • Normal[NetChain[]]はネットワークの構築に使われた層のリストまたは連想を返す.EdgeList[NetChain[]]はネットワーク内の接続のリストを返す.
  • NetChain[][[spec]]は,spec で指定された層をネットから抽出する.
  • NetChain[]ネットワークの変換は,NetReplacePartNetReplaceNetRenameNetFlattenNetDeleteNetTakeNetDropNetInsert等を使って行うことができる.
  • Options[NetChain]は層を構築する際のデフォルトオプションのリストを与える.Options[NetChain[]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
  • Information[NetChain[]]はネットワークについてのレポートを与える.
  • Information[NetChain[],prop]NetChain[]の特性 prop の値を与える.使用可能な特性NetGraphと同じである.

例題

すべて開くすべて閉じる

  (1)

2層からなる鎖を作る:

ネットを入力に適用する:

スコープ  (4)

入力を長さ2のベクトルに指定して,2層からなる鎖を作る:

ランダムな重みでネットを初期化する:

ネットを入力ベクトルに適用する:

明示的に名前が付けられた層で鎖を作る:

名前を使って第2層を取り出す:

Part構文を使って第1層を取り出す:

鎖を作る:

最初の2層からなる新たなネットワークを作る:

最終の2層からなる新たなネットワークを作る:

ElementwiseLayerLinearLayerに特別な構文を使う:

特性と関係  (5)

NetChainオブジェクトをNetGraph内の層として使うことができる:

入出力ポートが各1つのNetGraphオブジェクトをNetChainオブジェクト内の層として使うことができる:

NetGraph[chain]を書くことでNetChainオブジェクトを同等のNetGraphオブジェクトに変換することができる:

NetChainの構築に使われた層はNormalを使って取り出すことができる:

Information[chain,"SummaryGraphic"]を使って,チェーンに内在する接続性を示すGraphics[]式を得る:

おもしろい例題  (1)

サイズ2のベクトル入力を取りサイズ3のベクトル出力を生成するベースネットワークを構築する:

ベースネットワークのランダムに初期化された16個のコピーの表を作る:

それらを位置(x,y)を色の値(r,g,b)にマップする関数として扱って,表形式でプロットする:

Wolfram Research (2016), NetChain, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetChain.html (2022年に更新).

テキスト

Wolfram Research (2016), NetChain, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetChain.html (2022年に更新).

CMS

Wolfram Language. 2016. "NetChain." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/NetChain.html.

APA

Wolfram Language. (2016). NetChain. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NetChain.html

BibTeX

@misc{reference.wolfram_2024_netchain, author="Wolfram Research", title="{NetChain}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/NetChain.html}", note=[Accessed: 18-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_netchain, organization={Wolfram Research}, title={NetChain}, year={2022}, url={https://reference.wolfram.com/language/ref/NetChain.html}, note=[Accessed: 18-November-2024 ]}