強化学習8まで終了していることが前提です。
強化学習8では、ChainerUIの魔改造をしました。
あれでもいいのですが、今回は、同じようなことをChainerRLでします。
まず、
userFolder/anaconda3/envs/chainer/lib/python3.7/site-packages/chainerrl/experiments/evaluator.py
の31行目を変更します。
変更前
_basic_columns = ('steps', 'episodes', 'elapsed', 'mean',
'median', 'stdev', 'max', 'min')
変更後
_basic_columns = ('step', 'episode', 'elapsed_time', 'mean',
'median', 'stdev', 'max', 'min')
これで、scores.txtのヘッダーが変更されるので、ChainerRLの変更は不要になります。
もう一つは、
userFolder/anaconda3/envs/chainer/lib/python3.7/site-packages/chainerrl/experiments/train_agent.pyの
93行目にあるdef train_agent_with_evaluationの関数末尾に追加します。pythonは、インデントで動くので、インデントに注意が必要です。
json_list = []
with open(os.path.join(outdir, 'scores.txt'), 'r') as f:
for row in csv.DictReader(f,delimiter='\t'):
for key in row:
row[key]=float(row[key])
json_list.append(row)
with open(os.path.join(outdir, 'log'), 'w') as f:
json.dump(json_list, f)
importも追加します。
import json
import csv
魔改造すると、ノーマルChainerUIで簡単に見ることができるので、chainerRL本家も対応してくれるといいなあ。
windowsは、少し違うので強化学習12にまとめて書きます。