Можно ли переопределить индикатор выполнения кер TensorFlow? - PullRequest
0 голосов
/ 25 апреля 2020

В последние дни я наблюдал странное поведение при потере печати в индикаторе выполнения. Оказалось, что странное поведение было связано с тем, что индикатор прогресса по умолчанию для keras отображает скользящее среднее потерь (а не фактические потери в каждую эпоху).

Итак, возможно ли переопределить индикатор выполнения кер TensorFlow? Я так не думаю.

Есть класс tf.keras.utils.Progbar, который содержит параметр stateful_metrics, что, вероятно, то, что мне нужно, но fit, похоже, не обеспечивает возможность переопределить индикатор выполнения или изменить поведение с скользящей средней на фактическую потерю эпохи / шага. Какую альтернативу вы предлагаете? Не стесняйтесь писать ответ ниже с некоторым воспроизводимым кодом.

1 Ответ

0 голосов
/ 26 апреля 2020

Похоже, что вы хотите сделать через tf.keras.callbacks.ProgbarLogger. Теоретически это должно работать, как показано в следующем примере, однако в настоящее время существует проблема с tf.keras.callbacks.ProgbarLogger.

import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Flatten

(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255, x_test / 255

model = tf.keras.Sequential([
    Flatten(),
    Dense(128, activation='relu'),
    Dense(10)
])

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy'])
progbar_callback = tf.keras.callbacks.ProgbarLogger(stateful_metrics="accuracy")
model.fit(x_train, y_train, callbacks=[progbar_callback])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...