search
LoginSignup
0

posted at

updated at

Jupyter notebookでセルの出力を制御する

imageonline-gifspeed-8918972.gif

はじめに

ディープラーニングの学習をjupyter notebookで行っている際、ログの出力でページが埋め尽くされます。
学習には時間がかかりますので、ログ出力は必要なんですが、たまに邪魔に感じる時もありますので、制御できないか調べてみました。

セルを参照するために延々と上スクロールが必要

スクリーンショット 2021-12-16 15.57.30.png

セルの出力を消してみる

IPythonを利用してセルの出力を消してみました。
imageonline-gifspeed-8878378.gif

(Pythonコード)

# 表示の消去
from IPython.display import clear_output
import time

for i in range(10):
    clear_output()
    print('このメッセージを表示後に消します。を繰り返します。')
    time.sleep(1)
print('終わり')

出力行の更新をしてみる

出力した行の更新をしてみました。
imageonline-gifspeed-8918972.gif
(Pythonコード)

# 表示行の更新
from IPython.display import display
from time import sleep

print('次行の表示内容を更新します。')
update_line = display('更新前です。 -', display_id=True)
sleep(1)
for i in range(10):
    update_line.update( str(i) + '回目の更新をしました。')
    sleep(1)
print('終わり')

出力行の更新をしてみる(キャリッジリターンを利用)

IPythonではなく「キャリッジリターン」でやってみます。
imageonline-gifspeed-9107570.gif
(Pythonコード)

# 表示行の更新(キャリッジリターンを利用)
from time import sleep

print('次行の表示内容を更新します。')
print("\r"+ '更新前です。', end="")
sleep(1)
for i in range(10):
    print("\r"+ str(i) + '回目の更新をしました。',end="")
    sleep(1)

print("\n"+'終わり')

print命令にend=""がないと改行していまいますので注意です。

まとめ

これでログだらけのページを整理できそうです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0