所以我只想重新运行此repo中的代码: https://github.com/dennybritz/reinforcement-learning/blob/master/MC/MC%20Prediction%20Solution.ipynb
我的重点是印刷品的部分:
for i_episode in range(1, num_episodes + 1):
# Print out which episode we're on, useful for debugging.
if i_episode % 1000 == 0:
print "\rEpisode {}/{}.".format(i_episode, num_episodes)
sys.stdout.flush()
他正在使用sys.stdout.flush()创建一个简单的"进展"输出。你可以看到他的repo的输出它只显示最后一集的迭代10000/10000
,因为使用sys.stdout.flush()
但是当我尝试在我的jupyter笔记本中运行它时(我使用cmd命令运行jupyter notebook
)我认为sys.stdout.flush()不起作用,它显示每个打印的迭代,而不是覆盖前一个:
Episode 1000/10000.
Episode 2000/10000.
Episode 3000/10000.
Episode 4000/10000.
Episode 5000/10000.
Episode 6000/10000.
Episode 7000/10000.
Episode 8000/10000.
Episode 9000/10000.
Episode 10000/10000.
在运行jupyter时我是否遗漏了某些内容以使其正常工作?
答案 0 :(得分:1)
Charless Duffy评论让一切都清晰。覆盖的问题不在于打印功能中的刷新功能。
我发现解决方案只是编辑打印格式:
AbstractThing
到
print("\rEpisode {}/{}.".format(i_episode, num_episodes))
并且覆盖现在可以使用