見出し画像

Stable Baselines 2.10.0 の変更点

Stable Baselines 2.10.0」の変更点は、コールバックの追加とリファクタリングがメインになります。

1. 重大な変更

◎ evaluate_policyは、2番目の戻り値としてエピソードごとの報酬の標準偏差を返すようになりました(n_stepsの代わり)。

◎ evaluate_policyは、return_episode_rewardsがTrueに設定されている場合、2番目の戻り値としてエピソード長のリストを返すようになりました(n_stepsの代わり)。

◎ コールバックは一貫性のために各env.step()の後に呼び出されるようになりました(以前はA2CやPPO2などでn_steps毎に呼び出されていました)。

◎ 「common/a2c/utils.py」の未使用のコードを削除しました(calc_entropy_softmax, make_path)。

◎ ファイルの削除や関数の移動を含むリファクタリング。

 ・アルゴリズムは互いにインポートしなくなりました。commonはアルゴリズムからインポートしなくなりました。
 ・「a2c/utils.py」が削除され、他のファイルに分割されました。
  ・common/tf_util.py: sample, calc_entropy, mse, avg_norm, total_episode_reward_logger, q_explained_variance, gradient_add, avg_norm, check_shape, seq_to_batch, batch_to_seq.
  ・common/tf_layers.py: conv, linear, lstm, _ln, lnlstm, conv_to_fc, ortho_init
  ・a2c/a2c.py: discount_with_dones
  ・acer/acer_simple.py: get_by_index, EpisodeStats
  ・common/schedules.py: constant, linear_schedule, middle_drop, double_linear_con, double_middle_drop,
SCHEDULES, Scheduler
 ・「trpo_mpi/utils.py」の関数を移動しました。
  ・traj_segment_generatorをcommon/runners.pyに移動。
  ・flatten_listsをcommon/misc_util.pyに移動。
 ・ppo2/ppo2.pyの関数を移動しました。
  ・safe_meanをcommon/math_util.pyに移動。
  ・constfnおよびget_schedule_fnをcommon/schedules.pyに移動。
 ・sac/policies.pyの関数 mlpがcommon/tf_layers.pyに移動しました。
 ・sac/sac.pyの関数 get_varsが削除されました(tf.util.get_trainable_varsに置き換えられました)。
 ・deepq/replay_buffer.pyはcommon/buffers.pyに名前が変更されました。

2. 新機能

◎ DQNのリプレイバッファからの更新とサンプリングの並列化を行いました。

◎ Dockerビルドスクリプト「scripts/build_docker.sh」でイメージの自動プッシュできるようにしました。。

◎ コールバックコレクションを追加しました。

◎ vec_envモジュールにunwrap_vec_normalizeおよびsync_envs_normalizationを追加しました。

◎ 2つのVecNormalize環境の同期を行いました。

◎ ベクトル化された環境のseedメソッドを追加しました。

◎ 経験バッチをリプレイバッファに保存するための拡張メソッドを追加しました。


この記事が気に入ったらサポートをしてみませんか?