"Function" (ネットエンコーダ)
NetEncoder[{"Function",f,{d1,d2,…,dn}]
d1×d2×…×dn の出力テンソルを作り出すための入力を,カスタム関数 f を使って符号化するエンコーダを表す.
詳細
- NetEncoder[{"Function",…}]は,ニューラルネットワークのための前処理を定義するために使われることが多い.
- NetEncoder[…][input]はエンコーダを入力に適用し,出力を作る.
- NetEncoder[…][{input1,input2,…}]はエンコーダを入力のリストに適用し,出力のリストを作る.
- エンコーダへの入力 inputi はどのようなタイプでも,f[inputi]が d1×d2×…×dn の次元の配列を作り出すものであればよい.配列は,NumericArray式または数の多次元リストでよい.
- ネットワークの構築時に"port"->NetEncoder[…]と指定することで,エンコーダをネットワークの入力ポートに付加することができる.
- 以下のパラメータが使用可能である:
-
"Pattern" None 関数への入力に期待されるパターン "Batched" False 関数に入力のバッチを与えるかどうか SaveDefinitions True エンコーダの評価に関連した現行の定義を自動保存すべきかどうか Initialization None エンコーダが最初に適用された時に評価される式 ExcludedContexts Automatic シンボルの定義が再帰的に保存されないコンテキスト IncludedContexts All シンボルの定義が再帰的に保存されるコンテキスト - パラメータ"Pattern"patt は,エンコーダへの有効な入力がパターン patt と一致するよう指定する."Pattern" Noneは,チェックが行われないことを示す.
- パラメータ"Batched" Trueを使うと,関数は例題ごとに個別に適用されるのではなく,例題のバッチにまとめて一回適用される.
- デフォルトで,NetEncoder[{"Function",f,…}]は f の評価に必要なすべてのシンボルの定義を保存し,エンコーダを最初に評価するときにその定義を回復する.保存する定義の選択はSaveDefinitions,Initialization,ExcludedContexts,IncludedContextsの各オプションを使って変更できる.
パラメータ
例題
すべて開くすべて閉じるスコープ (2)
パラメータ (3)
SaveDefinitions (1)
この動作はSaveDefinitionsFalseを使って無効にできる:
考えられる問題 (1)
パラメータ"Pattern"Noneを使うと,入力が1つの例なのか,例のリストなのかが曖昧になる.結果として,例のリストが与えられた場合には,関数は余分に時間が使える: