环境:Ubuntu16.04
一、把要观察的变量加入到tf.summary.scalar或其他形式
episode_reward = tf.placeholder("float")
tf.summary.scalar("policy_loss", pg_loss)
tf.summary.scalar("vf_loss", vf_loss)
tf.summary.scalar("entropy", entropy)
tf.summary.scalar("loss", loss)
tf.summary.scalar("episode_reward", episode_reward)
summary_op = tf.summary.merge_all()
二、需要run summary_op,例如:
sess.run([pg_loss, vf_loss, entropy, approxkl,clipfrac, summary_op, _train],td_map)[:-1]
三、指定summary的文件位置
train_writer = tf.summary.FileWriter('./train', sess.graph)
四、然后在learn代码中,将run出来的summary加入到train_writer中
train_writer.add_summary(summary, update * nbatch)#update * nbatch表示训练的steps
五、在terminal, cd到train文件夹的上一级目录,敲入 tensorboard --logdir=train,在浏览器中打开指定地址,就可以看到汇总的数据
若出现问题:
TensorBoard attempted to bind to port 6006, but it was already in use
解决方案:
输入命令:
lsof -i:6006
kill -9 4969
在一个图中显示多条曲线的方法:
https://blog.csdn.net/u011606714/article/details/79423528
Tensorboard 上显示不同训练模型曲线的方法:
tensorboard --logdir=run1:"/home/.../summary",run2:"/home/.../summary" --port=6006