Чтение это и этот ответ Я понял, что с нединамическими моделями на TensorFlow-2.0 Keras будет использовать AutoGraph. Но теперь пишу обратный вызов, чтобы получить историю переменных во время обучения,
class TrainHistory(tf.keras.callbacks.Callback):
def on_train_begin(self, logs={}):
self.vars = []
def on_batch_end(self, batch, logs={}):
self.vars.append([v.numpy() for v in self.model.variables])
Я вижу, что можно использовать метод нетерпеливых тензоров .numpy()
. Я ожидал ошибку типа numpy() is only available when eager execution is enabled
. Выполняется ли энергичный код при использовании Keras с TensorFlow-2.0?
Здесь упоминается, что для функций, требующих большого объема вычислений, таких как свертки, скорость выполнения tf.function
-обращенных функций не так высока по сравнению с нетерпеливым кодом, но из чисел, показанных в примере, я предполагаю, что разница может иметь значение для длительных тренировок. Было бы лучше с точки зрения производительности использовать GradientTape
для пользовательской обучающей функции, украшенной tf.function
вместо метода fit()
Кераса?