load_model для обработки тестовых данных на уже обученной модели дает очень низкую точность

#python #tensorflow #keras

#python #tensorflow #keras

Вопрос:

Я обучил модель и сохранил ее в формате .h5. когда я использовал тот же файл, обучил модель, сохранил ее и загрузил, это дало хорошую точность, например, 84%. Но когда я использовал код только для загрузки модели и использовал его для оценки тестовых данных, точность была очень низкой, примерно 1,004%. Я не могу понять причину этого.

 history=model.fit([x1, x2], y,
                  epochs=1,
                  batch_size=256,
                  shuffle = False,
                   verbose = 1,
                  validation_split=0.2,
                  class_wei&ht=custom_wei&ht_dict,
                  callbacks=[early_stoppin&_cb]
                  )
model.save('my_models/model_context1.h5')

  

Затем я использовал следующий код для загрузки сохраненной модели и оценки ее по тестовым данным.

 model=load_model("my_models/model_context1.h5")
print(model.summary())
score = model.evaluate([x1_test, x2_test], y_test)
print("Accuracy after loadin& Model:", score[1]*100)
  

Что не так с тем, как я пытаюсь оценить точность обученной модели по тестовым данным? и использование сохраненного файла .h5.

Комментарии:

1. пожалуйста, покажите код, который вы использовали для сохранения модели.

2. Я добавил способ сохранения модели с помощью команды model.save.

Ответ №1:

Я подозреваю, что это связано с тем, что если вы использовали model.save по умолчанию, он сохраняет его в так называемом формате SavedModel. Это отличается от формата .h5.Чтобы сохранить их в формате .h5, вы передаете save_format=’h5 в model.save или передаете ему имя файла, которое заканчивается на .h5. Документация находится здесь..Смотрите пример. Формат SavedModel является предпочтительным форматом, поэтому я бы посоветовал вам использовать его, поскольку в конечном итоге они обесценят формат .h5.

Комментарии:

1. Я использовал model.save('my_models/model_context1.h5') , и это именно то, что говорится в документации, либо save_format=’h5′, либо передать имя файла, заканчивающееся на.h5.

2. да, все выглядит нормально. Как вы загружаете тестовые данные? Используете ли вы Ima&eDataGenerator? Вы уверены, что представляете данные точно таким же образом как для случаев no train, так и для retrain.?