Open qiwang067 opened 3 years ago
参考代码 链接中dqn 应该改为 DQN.
@MaxwellLiu 参考代码 链接中dqn 应该改为 DQN.
感谢反馈,github 的 pages 服务器出现问题了,不能更新在线阅读页面,等其回复正常,我们会及时更新
@MaxwellLiu 参考代码 链接中dqn 应该改为 DQN.
感谢您的反馈,链接已更新
cfg.max_episodes 这个在哪儿导入呢?
cfg.max_episodes 这个在哪儿导入呢?
你好,具体在哪个代码中,因为后面讲这个参数改为cfg.train_eps了,可能有漏掉的地方
您好,可以讲一下怎样用tensorboard查看结果吗,谢谢!
moving average rewards有什么意义,怎么解释他呢
看到有人在问 tensorboard
的用法,刚好这几天看了 pytorch
的教程,就基于 pytorch
做个小结吧。
tensorboard
原本是 tensorflow
里的,随着版本的更新,目前 pytorchy
也支持了 tensorboard
这个功能。
tensorboard
是在 pytorch
的 utils
库里,调用的时候需要 from torch.utils.tensorboard import SummaryWriter
,这个 SummaryWriter
就是将训练过程中的数据保存到日志中,然后在本地打开对应的端口查看对应的结果,模板如下:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs") # writer为自定义对象名,logs是日志文件名,这条代码实际就是创建一个日志文件以保存数据
writer.add_image("tag", image_tensor, global_step) # 往日志中添加单个图片,tensor和numpy array格式均可
writer.add_images("tag", images_tensor, global_step) # 往日志中添加一批图片
writer.add_scalar("tag", val, step) # # 往日志中添加常数
writer.close() # 在结束整个流程后记得加上这一句,把writer关掉
还能添加其他东西,可以看一下 SummaryWriter
里边的内容,或者去 pytorch
官网看一下doc.
这里对上边的语句做一下解释。首先 tag
可以理解为曲线图的图名,如上边的图片中的 tag
就是 steps_of_each_episode
, 然后 image_tensor
和 val
就是我们想要保存的东西,对于曲线图可以理解为纵轴坐标, global step
就是横轴坐标。
那么如何如何查看 tensorboard
呢,可以在 pycharm
的terminal
中输入 tensorboard --logdir=logs
(这个代码其实就是把上边我们创建的日志文件的地址赋给logdir, logs要与上边定义writer一致)然后就有一个本地的端口链接,点进去就可以看到结果了,当然也可以自行修改端口避免在服务器上跑的时候和别人冲突了,语法: tensorboard --logdir=logs --port=xxxx
(xxxx即为所要指定的端口, 默认为6006).
注意:如果不同训练过程中都使用 tensorboard
的话,且日志文件名没有更改,那么写入日志文件的 tag
应该进行修改,否则将会把结果绘制在之前的结果上边导致数据混乱,最好的方法就是更改日志文件名,比如这一次我用 writer = SummaryWriter("logs1")
, 下一次用 writer = SummaryWriter("logs2")
这样子。
最后举个简单的例子,比如要画个y = 2*x
的图,代码如下:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("y_2x")
for x in range(20):
y = 2 * x
writer.add_scalar("y = 2x", y, x)
writer.close()
然后运行后在终端输入 tensorboard --logdir=y_2x
即可查看结果。
env.seed(1)已经废止,应当改用env.reset(seed=1)
请问这里的 Agent 的类和 cfg 类是要自己定义吗
https://datawhalechina.github.io/easy-rl/#/chapter7/project2
Description