如何在 tensorflow 中显示训练进度条?

Bil*_*ill 9 python tensorflow

我正在尝试向终端输出与 Keras 培训相同类型的培训进度条。我是 tensorflow 的新手,还没有尝试过 Keras,但我很想知道它是否可以在没有 Keras 的情况下完成。

Eye*_*ear 11

import tensorflow as tf
train_data = (...) 
progbar = tf.keras.utils.Progbar(len(train_data))

for i, d in enumerate(train_data):
    (train model here...)
    progbar.update(i) # This will update the progress bar graph.


3714/3715 [============================>.] - ETA: 20s
Run Code Online (Sandbox Code Playgroud)
  • 在 Tensorflow (v1.1~ 2.1) 中,建议使用tf.keras.utils.Progbar()而不是导入tqdm.
  • 仅供参考,使用tf.print(), 而不是 python 本机打印功能。


Hu *_*ixi 5

也许我不完全理解你training progress bar的意思:
但我认为你可以尝试一个python包:tqdm,把它放到你的training loop

from tqdm import tqdm
for i in tqdm(range(10000)):
    ...
Run Code Online (Sandbox Code Playgroud)

那么你会得到这样的东西:

100%|??????????| 10000/10000 [00:00<00:00, 1383300.02it/s]
Run Code Online (Sandbox Code Playgroud)

tqdm医生。https://tqdm.github.io/


Muh*_*eeb 2

是的,这是可能的。

model.fit(X, y, nb_epoch=40, batch_size=32, validation_split=0.2, verbose=0)
Run Code Online (Sandbox Code Playgroud)

verbose:0 表示不记录到 stdout,1 表示进度条记录,2 表示每个周期一个日志行。