hwip/synergy

学習の並列処理について

Opened this issue · 4 comments

今の実装では,寄与率を報酬関数に渡すためにnpyを強引に保存して,読みだす仕組みにしている.

if os.path.exists("variance_ratio.npy"):

実行時の問題で,同時に同名のファイルを読みだすことになるため,並列にして学習させることができない.

TODO -> 内部的に数値を渡す or 一時保存の名前を学習毎に変更できるようにするなど,対応が必須.

例えば,

if 'is_success' in info:

などで用いられる,self.envs[i]のクラスがgrasp_block.pyで定義されるclass GraspBlockEnvである.
なので,同クラス内でPCAの累積寄与率を渡すメンバ(っていうのかな?)を定義すれば,rollout.pyとgrasp_block.pyで渡しあうことができる(と推理).

ただしまだうまくいってない...

暫定で以下のようにして修正してみました.多分うまくいってると思います.

if len(self.variance_ratio) > 0:

TODO

  • ハイパーパラメータを読み込み(条件ごとに別々で学習を行うため)

異なるハイパラ間での並列学習はシェルスクリプトで書いたので,確認よろしくです.#21
b39022f