#tensorflow2.0
Вопрос:
Я тренирую модель в цикле, где в каждом итере я инициализировал новую модель и обучал ее . Вот мой код:
def run_benchmark(dataset, augmentor, logger):
accs = []
for ite in range(3):
logger.info("iter ==> {}".format(ite))
df_train, df_test = LOADDATA_FUNCTIONS[dataset]()
if augmentor is not None:
# augmentation
logger.info("augmentating...")
df_train['content_aug'] = df_train['content'].map(lambda x: augmentor.augment(x))
logger.info("augmentated...")
df_train_aug = pd.DataFrame(zip(df_train['content_aug'].tolist() df_train['content'].tolist(), df_train['label'].tolist()*2),
columns=['content','label']).sample(frac=1)
else:
logger.info("do not augmentation...")
df_train_aug = df_train
(x_train, y_train), (x_test, y_test), num_classes = get_keras_data(df_train_aug, df_test)
model = get_model(num_classes)
logger.info("train begin==>")
history = model.fit(
x_train, y_train, batch_size=32, epochs=12, validation_data=(x_test, y_test), verbose=2,
callbacks = [EarlyStopping(monitor='val_acc', patience=3, mode='max')]
)
best_val_acc = max(history.history['val_acc'])
logger.info("iter completed, tranin acc ==>{}".format(best_val_acc))
accs.append(best_val_acc)
Однако после каждого итера появляется предупреждающая информация:
ПРЕДУПРЕЖДЕНИЕ:tensorflow:9 из последних 9 вызовов <function recreate_function..restored_function_body в 0x7f151b4f4d08> запустили повторное выполнение tf.функции. Трассировка является дорогостоящей, и чрезмерное количество трассировок может быть связано с (1) многократным созданием @tf.функции в цикле, (2) передачей тензоров с различными формами, (3) передачей объектов Python вместо тензоров. Для (1), пожалуйста, определите свою функцию @tf.вне цикла. Для (2) @tf.функция имеет параметр experimental_relax_shapes=True, который ослабляет формы аргументов, что позволяет избежать ненужного повторения. Для (3), пожалуйста, обратитесь к https://www.tensorflow.org/tutorials/customization/performance#python_or_tensor_args и https://www.tensorflow.org/api_docs/python/tf/function для получения более подробной информации.
Как я могу избежать этой предупреждающей информации?