При загрузке сгенерированного файла h5 я получаю следующую ошибку:
ValueError: Модель не найдена в файле конфигурации.
Я прочитал об этом и узнал что мне нужно перезагрузить модель и сохранить ее для 0 GPU машины, как написано в: https://github.com/keras-team/keras/issues/11253#issuecomment -482467792
При выполнении, как сказано там, и добавил следующий раздел:
x , y = build_resnet(x_train.shape[1:], 64, nb_classes)
model = keras.models.Model(inputs=x, outputs=y)
p_model = multi_gpu_model(model)
old_model = p_model.layers[-2]
old_model.save(save_path)
Я получил следующую ошибку:
ValueError: Чтобы использование нескольких графических процессоров было эффективным, вызовите multi_gpu_model
с gpus >= 2
. Получено: gpus=0
Когда я пытаюсь ввести следующий код:
model = keras.models.Model(inputs=x, outputs=y)
model.load_weights('resNet_trained_on_multi.h5')
Я получил следующую ошибку:
ValueError: Вы пытаясь загрузить файл весов, содержащий 0 слоев, в модель с 26 слоями.
Что я могу сделать, чтобы восстановить вес / модель с множеством графических процессоров, которые я сохранил? У меня есть следующие файлы (все сгенерированные одновременно):
- resNet_trained_on_multi.h5 - размер 6 КБ
- resNet_trained_on_multi.ckpt.data-00000-of-00001 - размер 12 МБ
- resNet_trained_on_multi.ckpt.index - размер 23 КБ
- resNet_trained_on_multi.ckpt.meta - размер 4 МБ
, созданный с использованием следующего кода сохранения:
def saveModel(model):
saver = tf.train.Saver()
h5_file = 'resNet_trained_on_multi.h5'
ckpt_file = 'resNet_trained_on_multi.ckpt'
saver.save(kerasBackend.get_session(), ckpt_file)
print("[OUTPUT] Checkpoint saved to: " + ckpt_file)
model.save(h5_file)
print("[OUTPUT] H5 Model saved to: " + h5_file)