在测试训练模型时,我很难记录/附加使用Keras Callback函数的强化学习模型的每一步返回的观察值。下面是我的尝试,但没有成功。
class step_logger(Callback):
def __init__(self):
self.observations = {}
def on_step_end(self, step, logs):
""" Update statistics of episode after each step """
self.observations[step].append(['observation'])
dqn.test(env, nb_episodes=2, visualize=False, callbacks=[step_logger()])
有人知道怎么做吗?
考虑这个想法:
class print_test_Callback(Callback):
def __init__(self, textpath):
self.textpath = textpath
def on_step_end(self):
test=self.observation_space
with open(textpath, 'a') as writefile:
with redirect_stdout(writefile):
print("test")
writefile.write("n")
这样它会写入一个外部文本文件,这样即使你中断了训练,你仍然会有所有的数据
你就这样把路传给他。
print_test_Callback(textpath=textpath)