GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

deepmind

dnc – 微分可能ニューラルコンピュータのTensorFlow実装

投稿日:

微分可能ニューラルコンピュータのTensorFlow実装。

微分可能ニューラルコンピュータ(DNC)

このパッケージはNatureに掲載されている微分可能なニューラルコンピュータの実装を提供します。

このソースコードを使用することから生じる知見を開示する刊行物は、「ダイナミック外部メモリを備えたニューラルネットワークを用いたハイブリッドコンピューティング」、Nature 538,471-476(October 2016)doi:10.1038 / nature20101を引用しなければならない。

前書き

微分可能ニューラルコンピュータはリカレントニューラルネットワークです。 各タイムステップでは、現在のメモリ内容(およびメモリ使用量などの補助情報)からなる状態を持ち、時刻t入力を時刻t出力にマップします。 これはRNNCoreモジュールの集合として実装されており、さまざまなモジュールを組み合わせてアーキテクチャのバリエーションを試すことができます。

  • アクセスモジュールは、メインのDNCロジックが発生する場所です。 これはメモリが書き込まれ、読み込まれる場所です。 タイムステップごとに、アクセスモジュールへの入力はcontrollerから渡されたベクトルであり、その出力はメモリから読み込まれた内容です。 これは2つのRNNCoreを使用しています。TemporalLinkageはメモリ書き込みの順番を追跡し、 RNNCoreどのメモリ位置が書き込み済みで、その後は “解放”されていないかを追跡します。 これらはどちらもaddressing.py定義されています。

  • コントローラモジュールは、メモリアクセスを「制御」する。 典型的には、フィードフォワードまたは(場合によっては深い)LSTMネットワークであり、その入力は、その時点で全体の反復ネットワークへの入力であり、前のタイムステップからアクセスモジュールからの読み取りメモリ出力と連結されている。

  • RNNCoreは、アクセスモジュールと制御モジュールを単にラップし、アーキテクチャ全体の基本的なRNNCoreユニットを形成します。 これはdnc.pyで定義されていdnc.py

列車

DNCは、 TensorFlowSonnetをインストールする必要があります。 与えられた入力文字列を繰り返しコピーするアルゴリズムタスクのためのトレーニングスクリプトの例が提供されています。 これはPythonインタプリタから実行できます:

$ ipython train.py

フラグを使用して、モデルとオプティマイザのパラメータを含むトレーニングオプションを指定できます。

$ python train.py --memory_size=64 --num_bits=8 --max_length=3

# Or with ipython:
$ ipython train.py -- --memory_size=64 --num_bits=8 --max_length=3

定期的に保存する、つまりチェックポイントを設定すると、モデルはデフォルトで無効になっています。 有効にするには、 checkpoint_intervalフラグを使用します。 たとえば、– --checkpoint_interval=10000は、 10,000ステップごとにチェックポイントが作成されるようにします。 モデルはデフォルトで/tmp/tf/dnc/チェックポイントされます。 そこからトレーニングを再開することができます。 別のチェックポイントディレクトリを指定するには、 checkpoint_dirフラグを使用します。 注意:形状の不一致エラーを避けるため、異なるモデルパラメータでトレーニングを再開する前に/tmp/tf/dnc/が削除されていることを確認してください。

より一般的には、 dnc.py内にあるDNCクラスを標準TensorFlow rnnコアとして使用し、任意の順次タスクでtf.nn.dynamic_rnnなどのTensorFlow rnn opsでtf.nn.dynamic_rnnすることができます。

免責事項:これは公式Google製品ではありません







-deepmind
-

執筆者:

deepmind

dnc – 微分可能ニューラルコンピュータのTensorFlow実装

投稿日:

(さらに…)







-deepmind
-

執筆者: