こんにちは、この記事の最後の部分です。
私はエキサイティングな結果を得てビデオを見る前に、すべてを実行するメインコードについて説明します。
これはメインコードであり、わかりましたが、これはかなり短いものです。
ライブラリとモジュールをインポートすることから始まり、モデルファイルからAltikritiのように作ったさまざまなクラスと関数も読み込みます。
列車ファイルからの列車機能とテストファイルからのテスト機能はもちろん、私たちのオプティマイザをインポートします。
次に、すべてのパラメータをクラスに入れる最初のセクションから始めます。
これはおそらくこれです。
これはこのハラムクラスから作成したBRAMオブジェクトです。
学習率のようなパラメータを得るたびに、私たちはそれがないわけではありません。
だからすぐにそれらを通過しましょう。
この最初の1つは学習率です。
あなたが見ることができるように、我々は小さいものを選び、第2のものを評価するのはパラメータです。
再び我々は0とする。 図39ではOneTelパラメータを1 16プロセスの20ステップと最大長10000のセットとしています。
そして、これは、エージェントが環境の状態に無期限に拘束されないようにするために設定したパラメータであるため、これによりゲームが中止されると話しました。
エピソードの長さがこの最大長を超え、最終的には私たちの環境の名前を取得する場合。
分割はゼロです。
また、ここで環境の名前を変更するだけで、他の環境でもプレイできます。
だから、あなたが他のいくつかのブレークアウト・バージョンや他のAtariゲームをうまくプレイしたいのであれば、他のいくつかのゲームでこのゼロ点を置き換えることができます。
しかし、私はブレークアウトビデオはすでに非常に挑戦していると伝えることができます。
ここですべてのパラメータを調整してください。
そしてメイン実行のメインコードがあります。
そして、ここで、この最初の行で何をしているのか見てみましょう。
コアごとに1つのスレッドを設定します。
2番目の行では、このBRAMオブジェクトに変数が添付されているため、ここですべてのパラメータを初期化するParamjitクラスの新しいオブジェクトを作成することで、すべてのレンダラーがレンダリングされます。
それから私たちは種を設定します。
次に、Createツリーを使用して環境を取得し、環境の名前がゼロから外れるように機能させます。
あなたは名前をつけているセルを見るので、パラメータと名前はかなりゼロです。
そうすれば、私たちは崩壊する環境を得ることができます。
そして、これは環境を作る普通の方法ではありませんが、プロセス全体を改善し、パフォーマンスを改善することを知っています。
実際に最適化された環境を作成するためにこれを使用します。これは、ユニバースユニバースがオープンエンジンにインストールされたすべてのパッケージに付属するパッケージです。
まあ、宇宙のおかげで私たちは最適化された環境を得ました
これがここにあるのです。
次に、アクティブなcriticクラスのオブジェクトを作成して共有モデルを取得します。
そして、ここでは、この共有モデルが異なるエージェントによって共有されるモデルであることを理解することが重要です。
だから私たちは別のコースで別のスレッドを持っています。
そして、次の行の脅威について、ここではモデルを共有するシェアドモデルは、コンピュータの共有メモリにモデルを格納して、異なるコースにあってもすべてのスレッドがそのモデルにアクセスできるようにすることです。
これが私たちがここでやることです。
これを有効にすると、オプティマイザは共有モデルのパラメータにリンクされ、学習率は1ポイントまたは1ポイントになります。
また、オプティマイザは共有モデル上で動作し、次の行はオプティマイザを共有メモリに格納する共有メモリを最適化し、すべてのエージェントが共有メモリにアクセスして最適化を行うことができるため、オプティマイザも共有されることを理解することが重要ですモデル。
テストプロセスが共有モデルを更新しないようにプロセスを初期化しますが、それを使って1つのパートで試してみて、スコアを印刷してビデオを記録します。
つまり、Targetと同等のテストでこれが行われます。
これはテストプロセスであり、このプロセスは複数の前処理という苦境から切り離されています。
したがって、ここでは、基本的には独立したスレッドで関数を実行するということです。
そこで、再起動すると、今度は昨年の新しいプロセスを開始します。
そして、Pを追加するこのプロセスでは、プロセスのリストにプロセスを追加します。
最後にこのループでは、共有モデルを更新することによって訓練される他のすべてのプロセスを実行するループを実行します。
そして、それは基本的にここの最後のコード行で起こります。
したがって、その詳細を知りたくない場合は、プロセスが最適な方法で実行されるため、このコードを実行し、訓練されたモデルを持ち、最終的には結果。
だから私はそれを待つことができません。
これはかなりエキサイティングなことになるだろう。
私はみんなが一緒にそれを見ることができるように、今、人々を見つけようとします。
それで、次回まで。