【学習の準備と流れ】
1. 学習用スクリプトとyamlファイルを作成.
AgentのコンポーネントのBehavior ParametersのBehavior Nameを固有のものに変更しておく.
そのほか,AgentのコンポーネントのSpace SizeやContinuous Actions,Interface Deviceなど必要なパラメータをセットしておく.
※yamlの2行目はAgentのコンポーネント「Behavior Parameters」の一番上のBehavior Nameと一致させる必要あり.
ここが一致していないと以下のようなエラーが出る
mlagents.trainers.exception.TrainerConfigError: The behavior name PivotAgent_xy_smooth has not been specified in the trainer configuration.
Please add an entry in the configuration file for PivotAgent_xy_smooth, or set default_settings.
yamlファイルの例
behaviors:
BoardBehavior:
trainer_type: ppo
hyperparameters:
batch_size: 10
buffer_size: 100
learning_rate: 3.0e-4
beta: 5.0e-4
epsilon: 0.2
lambd: 0.99
num_epoch: 3
learning_rate_schedule: linear
network_settings:
normalize: false
hidden_units: 128
num_layers: 2
reward_signals:
extrinsic:
gamma: 0.99
strength: 1.0
max_steps: 500000
time_horizon: 64
summary_freq: 10000
2. Winwdows PowerShellでanaconda起動.必要であればUnityのプロジェクトがある場所までフォルダ移動しておく.
(base) PS C:\Users\Mlab> conda activate ml-agents
3. 1.で作成したyamlファイル(のパス)を指定して学習開始.run-id=の後ろ(ここでは"RollerBall616")が出力フォルダとなる(固有名である必要あり).
(base) PS C:\Users\Mlab> mlagents-learn config/board_config.yaml --run-id=RollerBall616
4. PowerShell上にUnityのロゴが出て,エラーがなければOK.Unity Editorで再生ボタンを押して学習開始.
yamlに記述したハイパーパラメータなどの情報が正しく表示されればOK.学習が進むにつれエピソード数や経過時間などが更新されていく.
Unityのロゴというのはこんな感じ↑
【TensorBoardで結果を見る】
1. anaconda起動
(base) PS C:\Users\Mlab> conda activate ml-agents
2. resultsフォルダに移動
(ml-agents) PS C:\Users\Mlab> cd results
3. ログファイルのセット
(ml-agents) PS C:\Users\Mlab\results> tensorboard --logdir=./RollerBall616 --port=6006
出力
TensorFlow installation not found - running with reduced feature set.
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.8.0 at http://localhost:6006/ (Press CTRL+C to quit)
ブラウザで↑のURLにアクセスすれば良い.