【DRL, Montezuma】thread毎にパラーメータを変える機能を追加
VMを1台に限定すればGCPを後数日使える想定でしたが、今朝、クレジットを使い切りました。1日毎に課金をチェックするらしく、残りクレジットが420円であることに気がついた時には、既に、残りクレジットがもっと少なかったようです。
何も実験しないのは寂しいので、結局、またGCP無料試用を始めました。試用開始に際し、氏名、住所、電話番号、クレジットカード番号などを入力するのですが、電話番号とクレジットカードは複数持っていたので、これらは変えたところ、特に問題なく、新しい試用を開始することが出来ました。googleさん、ありがとうございます。
せっかくGCPを再度使えるようにしたので、thread毎にパラメータを変える機能を追加しました。学習履歴長(tes)、pseudo-rewardを計算するときの係数(psc_beta)、指数(psc_pow)をthread毎に変えられるようにしました。
thread毎にtes, psc_beta, psc_powを指定するオプションは、「--tes-list、--psc-beta-list、psc-pow-list」の3つで、「--tes-list=29,29,29,29,40,40,40,40」といった書き方になります。
このように実行時オプションで指定したら、とても見にくかったので、結局、各VM毎にこれらのパラメータをyamlファイル化し、「--yaml=yamlファイル名」で取り込めるようにしました。yamlファイルの例は下記です。実行時オプションと共用できるように、listではなく、文字列にしています。
tes_list : "40 ,40 ,40 ,40 ,29 ,29 ,29 ,29 "
psc_beta_list: "0.018 ,0.018 ,0.018 ,0.018 ,0.020 ,0.020 ,0.020 ,0.020 "
psc_pow_list : "2.0 ,2.0 ,2.0 ,2.0 ,2.2 ,2.2 ,2.2 ,2.2 "
トレーニング状況確認用の画面作成スクリプトも多少変え、thread毎のパラメータを表示するようにしました。確認画面例はここをご覧ください。ちなみに、まだ学習を始めたばかりなので、thread毎のパラーメータ多様化の効果は分かりません。
これで実験が容易になったので、しばらくは、これで実験する予定です。