NetGraph
NetGraph[{layer1,layer2,…},{m1n1,m2n2,…}]
層 miの出力が層 niの入力として与えられるグラフで指定されたニューラルネットを指定する.
NetGraph["name1"layer1,"name2"layer2,…,{"namem1""namen1",…}]
明示的に名前が付けられた層があるネットを指定する.
詳細とオプション
- NetGraphは,剰余の接続,連結,注意等の操作のためにニューラルネットワークの操作を複数の入力あるいは出力と繋ぐためによく使われる.
- NetGraph全体の入力あるいは出力のポートは,接続リストの中でNetPort["input"]…あるいは…NetPort["output"]を指定して作ることができる.
- グラフ内の連結の線形鎖は layer1layer2…layernとして指定できる.これは各 layeriを layeri+1に連結する.
- 第 n 層または"layer"という名前の層に入力ポートまたは出力ポートが複数ある場合は,NetPort[n,"port"]あるいはNetPort["layer","port"]を書いて曖昧さをなくすことができる.
- ある層にCatenateLayerやThreadingLayerのように複数の入力が可能なポートがある場合,{m1,m2,…}n で同時に複数の接続を行うことができる.これは …,m1n,…,m2n,…に等しい.入力 miは m1,m2,…の順で常に n に渡される.
- 任意の層の1つまたは複数の入力ポートあるいは出力ポートが連結されないままにされた場合,これらはNetGraph全体のポートになる.
- 層の複数の出力ポートが連結されずに残され,"Output"という同じを共有している場合,これらは,名前が"Output1","Output2"等の,NetGraph全体の別々のポートになる.
- NetPort[layer,"port"]Noneを書いていくつかの出力ポートをミュートのままにして置くことができる.
- ポートの配列の形,NetEncoderあるいはNetDecoderの指定には,"port"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[…] 特徴抽出器関数 - NetGraphは,個別の層を与える場合に次の特別層指定をサポートする.
-
Ramp,LogisticSigmoid,… ElementwiseLayer[f] Plus,Times,Divide,… ThreadingLayer[f] n LinearLayer[n] {layer1,layer2,…} NetChain[{layer1,layer2,…}] - 次の訓練パラメータを含めることができる.
-
LearningRateMultipliers Automatic ネットの中の訓練可能な配列についての学習率乗数 - NetGraph[…][data]は,単一の入力ポートがあるネットについてはネットを data に適用した結果を与える.
- NetGraph[…][<port1data1,… >]は,複数の入力ポートがあるネットについては各ポートのデータを与える.
- NetGraph[…][data]は,単一の出力ポートがあるネットについてはそのポートの出力を与える.特性 prop があるNetDecoderが出力ポートに接続されている場合,NetGraph[…][data,prop]はその特性を計算する.
- NetGraph[…][data,"Properties"]を使って使用可能な特性のリストが得られる.
- NetGraph[…][data]は,複数の出力ポートがあるネットについてはすべてのポートの出力の連想を与える.NetGraph[…][data,"oport"]は"oport"という名前の出力ポートの出力を与える.NetGraph[…][data,NetPort["oport"]prop]は特性 prop を持つNetDecoderがこの出力に接続されている場合はそのポートの特性を計算する.
- NetGraph[…][data,NetPort["oport"]"Properties"]を使って指定されたポートについて使用可能な特性のリストが得られる.
- NetGraph[…][data,NetPortGradient["port"]]は入力ポート"port"に対する出力の勾配を与える.
- NetGraph[…][data,NetPortGradient[{layer1,…,"array"}]]はネストした層の配列に対する出力の勾配を与える.
- NetGraph[…][data,NetPortGradient[All]]はすべての勾配を含む連想を与える.
- NetGraph[…][data,{spec1,spec2,…}]はすべての指定に対する出力の連想を与える.各指定 speciは,NetPort設定,NetDecoder特性への参照,あるいはNetPortGradientでよい.
- NetGraph[…][data,…,opts]は,ネットを data に適用する際にオプションを使うように指定する.次は使用可能なオプションである.
-
BatchSize Automatic 入力リストについて一度に評価する入力数 NetEvaluationMode "Test" 評価を行う際にどのモードを使うか RandomSeeding Automatic 擬似乱数生成器がある場合はそれをどのようにシードするか TargetDevice "CPU" 評価を行うターゲットデバイス WorkingPrecision "Real32" ネットの評価に使う数値精度 - 次は,WorkingPrecisionの可能な設定である.
-
"Real32" 単精度実数を使う(32-bit) "Real64" 倍精度実数を使う(64-bit) "Mixed" 特定の操作に半精度実数を使う - WorkingPrecision"Mixed"はTargetDevice"GPU"についてのみサポーとされるが,この場合はデバイスによっては重大なパフォーマンスの向上が期待できる.
- NumericArrayが入力として与えられると,出力はNumericArrayになる.その場合,数値型はWorkingPrecisionから導かれる.
- NetEvaluationMode"Training"という設定のとき,DropoutLayer等の層は,通常評価のようにではなく訓練時のように動作する.
- NetGraphのStandardFormはグラフ内の層の連結度を与え,辺が表す配列の次元で辺に注釈を付ける.グラフ内の層あるいはポートをクリックすると層あるいはポートについてのより詳しい情報が表示される.
- Normal[NetGraph[…]]は,グラフの構築に使われる層のリストまたは連想を返す.EdgeList[NetGraph[…]]はグラフ中の連結リストを返す.
- NetGraph[…][[spec]]は,ネットから spec で指定された層を抽出する.
- NetGraph[…]ネットワークの変換は,NetReplacePart,NetReplace,NetRename,NetFlatten,NetDelete,NetTake等で行える.
- Options[NetGraph]は層を構築する際のデフォルトオプションのリストを与える.Options[NetGraph[…]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
- Information[NetGraph[…]]はネットワークについてのレポートを与える.
- Information[NetGraph[…],prop]はNetGraph[…]の特性 prop の値を与える.次は,使用可能な特性である.
-
"Arrays" ネットワークの各配列を与える連想 "ArraysByteCounts" 各配列のバイト数を与える連想 "ArraysCount" すべての層の配列総数 "ArraysDimensions" 各配列の次元を与える連想 "ArraysElementCounts" 各配列の要素数を与える連想 "ArraysLearningRateMultipliers" 各配列についてのデフォルトの学習率乗数の連想 "ArraysPositionList" NetExtract,NetReplacePart,LearningRateMultipliers等についての配列の位置指定 "ArraysSizes" 各配列の大きさを与える連想 "ArraysTotalByteCount" すべての層のすべての配列のバイト総数 "ArraysTotalElementCount" すべての配列の要素総数 "ArraysTotalSize" すべての層のすべての配列の合計サイズ "FullSummaryGraphic" 任意の深さのすべての層の連結度を表すグラフィックス "InputForm" ネットを再構築する式 "InputPortNames" 入力ポート名のリスト "InputPorts" 入力ポートの形状の連想 "Layers" ネットワーク中の各層を与える連想 "LayersCount" 層の総数 "LayersGraph" 層の連結度を表すグラフ "LayersList" すべての層のリスト "LayerTypeCounts" ネットワーク中に各タイプの層が何回出現するか "MXNetNodeGraph" もとになる"MXNet"操作の生のグラフ "MXNetNodeGraphPlot" "MXNet"操作の注釈付きグラフ "OutputPortNames" 出力ポート名のリスト "OutputPorts" 出力ポートの形状の連想 "Properties" 使用可能な特性 "RecurrentStatesCount" ネット中の再帰状態数 "RecurrentStatesPositionList" NetStateObjectについての再帰状態の位置指定 "SharedArraysCount" 共有された配列の総数 "SummaryGraphic" 層の連結度を表すグラフィックス - 特性"ArrayByteCount"と"ArraysTotalByteCount"はすべての配列をそれらがすでに初期化されたかのように扱う.
例題
すべて開くすべて閉じるスコープ (14)
構築 (6)
NetPortを使った特別な構築 (3)
評価 (3)
アプリケーション (1)
特性と関係 (4)
Wolfram Research (2016), NetGraph, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetGraph.html (2022年に更新).
テキスト
Wolfram Research (2016), NetGraph, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetGraph.html (2022年に更新).
CMS
Wolfram Language. 2016. "NetGraph." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/NetGraph.html.
APA
Wolfram Language. (2016). NetGraph. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NetGraph.html