NetStateObject
NetStateObject[net]
ネットがデータに適用されると更新される追加的な保存状態情報を持つ,ニューラルネットを表す net から派生したオブジェクトを作る.
NetStateObject[net,seed]
追加的な保存状態情報が seed を使って初期化されたオブジェクトを作る.
詳細
- NetStateObject[…][data]は,NetStateObject中の保存された状態情報を更新する.
- 状態の情報は,LongShortTermMemoryLayerのような再帰ネット層の状態ポートに関連付けられている.
- NetStateObjectは,状態ポートがNetGraph中の他の層によって初期化された層の状態は保存しない.
- シードが与えられていない場合,再帰状態の初期値は0の配列からなる.
- 保存された状態の現行値はNetExtract[NetStateObject[…],"States"]で与えられる.
例題
すべて開くすべて閉じる例 (3)
アプリケーション (1)
英語の文字レベルの言語モデルを訓練する.まず,2つの小説から取った25文字の訓練例を30万例作る:
このデータは分類問題の形をしている.文字列が与えられると次の文字が予測される.次はデータのサンプルである:
このネットを訓練する.訓練にはCPUで最大1時間かかる.サポートされるGPUがあるなら,TargetDeviceを"GPU"に設定するとよいだろう:
特性と関係 (3)
再帰層の状態の初期値がNetGraph中の接続によって与えられるのであれば,その状態はNetStateObjectによっては保存されない.
接続を使ってBasicRecurrentLayerの状態の初期値を与えるグラフを作る:
保存する状態がもう残っていないので,このグラフはNetStateObject内では使えない:
保存された状態の現行値は,NetExtractを使って得ることができる.
まず,NetStateObjectを作る:
再帰ネットについては,NetStateObjectを使うことは,NetPort[All,"States"]を使って手作業で再帰状態の記録を付けることに等しい.
状態オブジェクトを作り,これを使って単一の1から始めて最大尤度列を効率的に生成する:
NetPort[All,"States"]を使って訓練済みのネットから生成し,再帰状態を設定して得る.これも同じ結果を与える:
テキスト
Wolfram Research (2018), NetStateObject, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetStateObject.html.
CMS
Wolfram Language. 2018. "NetStateObject." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/NetStateObject.html.
APA
Wolfram Language. (2018). NetStateObject. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NetStateObject.html