読者です 読者をやめる 読者になる 読者になる

Itsukaraの日記

最新IT技術を勉強・実践中。最近はDeep Learningに注力。

【DRL, Montezuma】thread毎にパラーメータを変える機能を追加

Montezuma's Revenge DRL 機械学習 Python ITのお勉強

VMを1台に限定すればGCPを後数日使える想定でしたが、今朝、クレジットを使い切りました。1日毎に課金をチェックするらしく、残りクレジットが420円であることに気がついた時には、既に、残りクレジットがもっと少なかったようです。

何も実験しないのは寂しいので、結局、またGCP無料試用を始めました。試用開始に際し、氏名、住所、電話番号、クレジットカード番号などを入力するのですが、電話番号とクレジットカードは複数持っていたので、これらは変えたところ、特に問題なく、新しい試用を開始することが出来ました。googleさん、ありがとうございます。

せっかくGCPを再度使えるようにしたので、thread毎にパラメータを変える機能を追加しました。学習履歴長(tes)、pseudo-rewardを計算するときの係数(psc_beta)、指数(psc_pow)をthread毎に変えられるようにしました。

github.com

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毎のパラーメータ多様化の効果は分かりません。

これで実験が容易になったので、しばらくは、これで実験する予定です。