私はJupyterノートブックでKeras model.fit()を実行していますが、verboseが1に設定されていると、出力が非常に乱雑になります。
Train on 6400 samples, validate on 800 samples
Epoch 1/200
2080/6400 [========>.....................] - ETA: 39s - loss: 0.4383 - acc: 0.79
- ETA: 34s - loss: 0.3585 - acc: 0.84 - ETA: 33s - loss: 0.3712 - acc: 0.84
- ETA: 34s - loss: 0.3716 - acc: 0.84 - ETA: 33s - loss: 0.3675 - acc: 0.84
- ETA: 33s - loss: 0.3650 - acc: 0.84 - ETA: 34s - loss: 0.3759 - acc: 0.83
- ETA: 34s - loss: 0.3933 - acc: 0.82 - ETA: 34s - loss: 0.3985 - acc: 0.82
- ETA: 34s - loss: 0.4057 - acc: 0.82 - ETA: 33s - loss: 0.4071 - acc: 0.81
....
ご覧のように、プログレスバーのように、最初の行の元のETA/loss/acc値を置き換えるのではなく、ETA、損失、acc出力がログに追加され続けます。
エポックごとに1行のプログレスバー、ETA、損失とaccのみが表示されるように修正するにはどうすればよいですか?現在、トレーニングを続けると、私のセル出力にはこれらのラインがたくさんあります。
Windows 10でPython 3.6.1を次のモジュールバージョンで実行しています。
jupyter 1.0.0
jupyter-client 5.0.1
jupyter-console 5.1.0
jupyter-core 4.3.0
jupyterthemes 0.19.0
Keras 2.2.0
Keras-Applications 1.0.2
Keras-Preprocessing 1.0.1
tensorflow-gpu 1.7.0
ありがとうございました。
Keras対応バージョンのTQDMプログレスバーライブラリを試すことができます。
使用方法は以下に分類できます。
インストールします。 _pip install keras-tqdm
_(安定版)または_pip install git+https://github.com/bstriner/keras-tqdm.git
_(最新の開発バージョン用)ごと
_from keras_tqdm import TQDMNotebookCallback
_を使用してコールバック関数をインポートする
kerasのfit
または_fit_generator
_を_verbose=0
_または_verbose=2
_設定で実行しますが、インポートされたTQDMNotebookCallback
へのコールバックを使用します。 model.fit(X_train, Y_train, verbose=0, callbacks=[TQDMNotebookCallback()])
結果:
これを見るのにしばらく時間がかかりましたが、tqdm
(バージョン> = 4.41.0)もkeras
の組み込みサポートを追加したので、次のことができます。
from tqdm.keras import TqdmCallback
...
model.fit(..., verbose=0, callbacks=[TqdmCallback(verbose=2)])
これにより、keras
'の進行状況がオフになります(verbose=0
)、代わりにtqdm
を使用します。コールバックの場合、verbose=2
は、エポックとバッチの別々のプログレスバーを意味します。 1
は、完了時にバッチバーをクリアすることを意味します。 0
は、エポックのみを表示する(バッチバーを表示しない)ことを意味します。
問題がある場合は、遠慮なく投稿してください https://github.com/tqdm/tqdm/issues