TensorFlow Keras进度条如何自定义打印文字?

问题描述 投票:0回答:2

是否可以自定义 TensorFlow 的 Keras 进度条中出现的文本? 我目前的实现和用法如下(我使用 TensorFlow 2.8):

bar = tf.keras.utils.Progbar(target=n_train_samples)
step = 0
for x in dataset:
  train_step(x)
  step += 1
  bar.update(step * batch_size)

当前行为是:

 48/316 [===>..........................] - ETA: 1:19

但是,我想打印类似的东西:

 TRAIN: 48/316 [===>..........................] - ETA: 1:19

编辑: 我也尝试在进度条之前打印文本,但随后它被覆盖了。例如。下面的代码:

import time
import tensorflow as tf

bar = tf.keras.utils.Progbar(target=10)
step = 0
for x in range(10):
    time.sleep(0.2)
    step += 1
    print("TRAIN: ", end="")
    bar.update(step)

返回以下输出:

10/10 [==============================] - 5s 501ms/step

我不想发生的事情: 我不想在多行上打印。进度条仍应在同一行上自行更新,只需预先附加“TRAIN”即可。所以,在时间步骤 #3,我不想:

 TRAIN: 
 1/10 [==>...........................] - ETA: 4s
 TRAIN: 
 2/10 [=====>........................] - ETA: 4s
 TRAIN: 
 3/10 [========>.....................] - ETA: 3s

但我想要:

 TRAIN: 3/10 [========>.....................] - ETA: 3s
tensorflow keras progress-bar
2个回答
1
投票

解析代码:

import time import tensorflow as tf

bar = tf.keras.utils.Progbar(target=10) step = 0

for x in range(10):
    print("\n TRAIN: ")
    time.sleep(0.5)
    step += 1
    bar.update(step)

输出:

TRAIN: 
 1/10 [==>...........................] - ETA: 4s
 TRAIN: 
 2/10 [=====>........................] - ETA: 4s
 TRAIN: 
 3/10 [========>.....................] - ETA: 3s
 TRAIN: 
 4/10 [===========>..................] - ETA: 3s
 TRAIN: 
 5/10 [==============>...............] - ETA: 2s
 TRAIN: 
 6/10 [=================>............] - ETA: 2s
 TRAIN: 
 7/10 [====================>.........] - ETA: 1s
 TRAIN: 
 8/10 [=======================>......] - ETA: 1s
 TRAIN: 
 9/10 [==========================>...] - ETA: 0s
 TRAIN: 
10/10 [==============================] - 5s 503ms/step

0
投票

只需打印一些前面有几个空格且末尾没有 LF 的东西。它会保存直到被覆盖,这可能永远不会。

now = datetime.datetime.now()
saveTime = now.strftime("%H:%M:%S")  # userfriendly now
print("        saved at ", saveTime, end='', flush=True)


Epoch: 3
21/98 [=====>........................] - ETA: 16:04 - total_loss: 83.5692 - rec_loss: 0.0669 - perc_loss: 0.7274 - smooth_loss: 0.2739 - warping_loss: 0.6828 - psnr: 19.1418 - ssim: 0.5147        saved at  12:22:03

另外,请注意您的屏幕宽度。

© www.soinside.com 2019 - 2024. All rights reserved.