Так что я только хочу, чтобы повторно запустить код из этого репо: https://github.com/dennybritz/reinforcement-learning/blob/master/MC/MC%20Prediction%20Solution.ipynbsys.stdout.flush не работает в jupyter ноутбук
Мое внимание сосредоточено на части принт:
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(), чтобы создать простой «прогресс». Вы можете увидеть выход из его репо он только показывает последний эпизод итерация 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, чтобы сделать это работает?
Это '\ r's, которые вызывают перезапись , а не 'flush()' - это просто гарантирует, что содержимое не застряло в буфере. Поскольку он фокусируется на чем-то отличном от ключевого компонента, это немного запутанно, как написано в настоящее время. –
oh .. Я не знаю о символе '\ r' там, спасибо :) теперь ясно. – malioboro