У меня есть код, использующий низкий уровень Tensorflow, и я печатаю индикатор выполнения. Я попробовал оба tdqm
и progressbar2
, и оба работают одинаково. Наконец, я выбрал tqdm
, потому что он позволяет мне использовать подробный параметр, а код выглядит следующим образом:
for epoch in range(epochs):
if verbose:
print("Epoch: {0}/{1}".format(epoch, epochs))
for iteration in tqdm.trange(num_tr_iter, disable=not verbose):
do_training()
Однако мой вывод - это только индикатор выполнения и процент, но не так много информации, получаемой из который. Я бы хотел, чтобы индикатор выполнения имел больше данных, таких как потери и точность, например:
Epoch 1/3
50000/50000 [==============================] - 3s 52us/sample - loss: 0.3373 - sparse_categorical_accuracy: 0.9047 - val_loss: 0.1922 - val_sparse_categorical_accuracy: 0.9436
Я только что увидел эту ссылку , которая, кажется, мне нужна, но все Например, как передать его для keras
в качестве обратного вызова, а не как поместить его в свой собственный l oop. Я также видел эту библиотеку , которая может работать, но я застрял в той же проблеме.
ОБНОВЛЕНИЕ: Я только что натолкнулся это . Очевидно, лучше использовать это для производительности, поэтому мой новый код:
for epoch in range(epochs):
if verbose:
tf.print("Epoch: {0}/{1}".format(epoch, epochs))
progbar = tf.keras.utils.Progbar(num_tr_iter)
for iteration in range(num_tr_iter):
if verbose:
progbar.update(iteration+1)
do_training()
Вопрос все еще стоит, и обе версии будут решением для меня, но если это с Tensorflow Progbar
лучше.