Web Analytics

pokemonred_puffer

⭐ 182 stars Japanese by drubinstein

ポケットモンスター 赤 (RL エディション)

テスト

このリポジトリは、ポケットモンスター赤のRL開発用のライブラリとして設計されています。ライブラリ環境で使用すべきでない便利関数が含まれており、フォークして使用することが推奨されます。将来的には、これらの便利関数は移行され、フォーク不要になる予定です。

クイックスタート

インストール

ライブラリをインストールするには、以下のいずれかの方法があります。

例えば、

pip3 install -e . 

実行

以下は、場合によってはデフォルト引数を使用するコマンドです。リポジトリに関連するコマンドライン操作の使い方がわからない場合は、python3 -m pokemonred_puffer.train --helpを実行してください。いくつかのコマンドは最近テストされていない可能性があるため、問題があればぜひIssueを作成してください。

インストール後は、次のコマンドでトレーニングを開始できます:

# Run before training to test what num_envs value you should use
python3 -m pokemonred_puffer.train autotune

Default

python3 -m pokemonred_puffer.train train

マルチノードハイパーパラメータスイープ(進行中)

ハイパーパラメータスイープを実行したい場合は、関連パッケージをインストールし、2つのコマンドを起動してください:

pip3 install -e '.[sweep]'
python3 -m pokemonred_puffer.sweep launch-sweep
python3 -m pokemonred_puffer.sweep launch-agent 

スイープIDはスイープを開始するときに表示されます。スイープを再開するには、スイープを再度起動して次のようにします。

python3 -m pokemonred_puffer.sweep launch-sweep --sweep-id 
スイープはスイープ設定(デフォルトは sweep-config.yaml)とベース設定(デフォルトは config.yaml)で構成できます。ハイパーパラメータスイープはスイープ設定を使って範囲を設定し、ベース設定のパラメータを中心にハイパーパラメータを調整します。ハイパーパラメータアルゴリズムの詳細については、ImbueのCARBSリポジトリをご覧ください。

注意:現在、シングルノードスイープはサポートされていません。もしこれが必要な機能であれば、Issueを作成してください。

トレーニング用の修正

実行中のランがあるが、それをいじりたい場合はどうしますか?

いくつかの選択肢があります:

デバッグ

変更をテストしたい場合は、次のように実行できます

python3 -m pokemonred_puffer.train --config config.yaml --debug
緊急の場合は、environment.pysend_input 関数呼び出しを削除することをお勧めします。これにより、モデルのスケジュールではなく、自分のスケジュールで報酬をテストできます。

ディレクトリ構成

このリポジトリは最終的にライブラリとして使用されることを想定しています。すべてのソースファイルは pokemonred_puffer ディレクトリの下に配置してください。__main__ を持つモジュールを追加したい場合は自由にどうぞ。ただし、pokemonred_puffer ディレクトリの下に置いてください。その後、python3 -m pokemonred_puffer. でメインを実行できるはずです。

pokemonred_puffer ディレクトリ内には以下のファイルとディレクトリがあります:

変更の加え方

簡単な変更の場合は、config.yaml を直接更新できます。config.yaml にはいくつか重要なルールがあります。wrappersrewards、および policies は、それぞれのラッパー、報酬、ポリシーが必ず module_name.class_name をキーにしている必要があります。これらのセクションは複数のタイプの wrappersrewardspolicies を保持できます。一般的なレイアウトは ラベル : クラスの引数 です。これは、より良い方法が見つかるまでの間の対応です。

ラッパーの追加

ラッパーを追加するには、gym.Wrapper を継承した新しいクラスを wrappers ディレクトリに追加します。次に config.yamlwrappers セクションを更新します。ラッパーは上から下へ順にベース環境をラップします。ラッパーリストはクラスパスでキー付けされているわけではありません。ラッパーの集合を区別するユニークな名前です。

報酬の追加

報酬を追加するには、新しいクラスを rewards ディレクトリに追加します。次に config.yamlrewards セクションを更新します。報酬セクションはクラスパスでキー付けされています。

ポリシーの追加

ポリシーを追加するには、新しいクラスを policies ディレクトリに追加します。次に config.yamlpolicies セクションを更新します。ポリシーセクションはクラスパスでキー付けされています。再帰的なポリシーは、それがラップするポリシーと同じモジュールに存在すると想定されています。

開発

このリポジトリはフォーマットとリンティングを強制するために pre-commit を使用しています。開発のために、このリポジトリを以下のようにインストールしてください:

pip3 install -e '.[dev]'
pre-commit install

変更がある場合は、プルリクエストを提出してください。

著者

David Rubinstein, Keelan Donovan, Daniel Addis, Kyoung Whan Choe, Joseph Suarez, Peter Whidden

Star History Chart

--- Tranlated By Open Ai Tx | Last indexed: 2026-02-26 ---