Загрузите предварительно обученную модель keras для продолжения обучения в облаке Google

Я пытаюсь загрузить предварительно обученную модель Keras для продолжения обучения в облаке Google. Он работает локально, просто загружая дискриминатор и генератор с помощью

 model = load_model('myPretrainedModel.h5')

Но, очевидно, это не работает в облаке Google, я пробовал использовать тот же метод, который использую для чтения данных обучения из моей корзины хранилища Google, с помощью:

fil = "gs://mygcbucket/myPretrainedModel.h5"    
f = BytesIO(file_io.read_file_to_string(fil, binary_mode=True))
return np.load(f)

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

ValueError: невозможно загрузить файл, содержащий обработанные данные, когда allow_pickle=False

добавление allow_pickle=True, выдает еще одну ошибку:

OSError: не удалось интерпретировать объект file <_io.BytesIO по адресу 0x7fdf2bb42620> как рассол

Затем я попробовал что-то, что я нашел, как кто-то предложил для аналогичной проблемы, поскольку я понимаю, что это временно повторно сохраняет модель локально (относительно того, где выполняется задание) из корзины, а затем загружает ее с помощью:

fil = "gs://mygcbucket/myPretrainedModel.h5"  
model_file = file_io.FileIO(fil, mode='rb')
file_stream = file_io.FileIO(model_file, mode='r')
temp_model_location = './temp_model.h5'
temp_model_file = open(temp_model_location, 'wb')
temp_model_file.write(file_stream.read())
temp_model_file.close()
file_stream.close()
model = load_model(temp_model_location)
return model

Однако это вызывает следующую ошибку:

TypeError: ожидаемая двоичная строка или строка Unicode, получен объект tensorflow.python.lib.io.file_io.FileIO

Я должен признать, что не совсем уверен, что мне нужно сделать, чтобы на самом деле загрузить предварительно обученную модель keras из моего хранилища и использовать if в моей учебной работе в облаке Google. Любая помощь очень ценится.

1 ответ

Я бы посоветовал использовать для этого ноутбуки AI Platform. Загрузите обученную модель этим методом. Проверьте код Python на вкладке Примеры кода. Если у вас есть модель в виртуальной машине, на которой работает Notebook, вы можете загрузить ее, как вы это делали локально. Вот пример использования tf.keras.models.load_model.

Другие вопросы по тегам