NetUnfold
NetUnfold[fnet]
たたみ込まれたネット fnet の再帰状態を公開する初期ネットを生成する.
詳細とオプション
- たたみ込まれたネットは,再帰ネットや一方向トランスフォーマのように同じ操作を繰り返すことでシーケンスを一方向に反復するネットである.
- NetUnfoldは,通常,訓練済みのデコーダからのテキストや音声の生成やテキスト翻訳等のアプリで使用できるシーケンスを効率的に生成するために繰返し操作の抽出に使われる.
- ,状態方程式が で出力方程式が ,訓練パラメータが の再帰ネットワークのとき,展開されたネットは再帰 と の単一ステップに相当する.
- NetUnfoldは,特に次のたたみ込み層の再帰状態を公開する.
-
BasicRecurrentLayer[…] 1状態ベクトル GatedRecurrentLayer[…] 1状態ベクトル LongShortTermMemoryLayer[…] 2状態ベクトル,中に1つの内部呼び出し状態 NetFoldOperator[net,{"out1""in1",…,"outn""inn"},…] n 状態ベクトル AttentionLayer[…,"Mask""Causal"] 前のキーと値である2状態のシーケンス - 再帰層の公開された状態は,通常は0で初期化されるベクトルである.トランスフォーマの公開された状態は,変数長のベクトルのシーケンスである.これは,通常は,空のシーケンスで初期化される.
- NetUnfoldもたたみ込まれたネットに適用し,出力シーケンスの最後の要素を操作することができる.そのような場合には対応するSequenceLastLayerが除去される.
- NetUnfoldはNetFoldOperatorの逆操作と見ることができる.
例題
すべて開くすべて閉じる例 (1)
GatedRecurrentLayerにたたみこまれた中心的操作を得る:
アプリケーション (1)
効率的なテキスト生成を実装する.まず,訓練された言語モデルを入手する:
この関数の問題は,モデルが同じ入力に対して数回フィードされるために二次時間計算量を持つことである:
NetUnfoldを使うと,状態を公開することで同じアクティベーションの再計算を避けることができる:
特性と関係 (2)
Wolfram Research (2021), NetUnfold, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetUnfold.html.
テキスト
Wolfram Research (2021), NetUnfold, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetUnfold.html.
CMS
Wolfram Language. 2021. "NetUnfold." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/NetUnfold.html.
APA
Wolfram Language. (2021). NetUnfold. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NetUnfold.html