Как сохранить модель при использовании нескольких графических процессоров? - PullRequest
0 голосов
/ 13 февраля 2020

Когда я тренировался на 1 графическом процессоре, я звонил model.save('test.model'), и в конце обучения у меня был файл test.model, который я мог бы затем использовать в коде предсказания.

Сейчас я тренируюсь на 2 графических процессорах, и когда я звоню model.save('test_2gpus.model'), я получаю папку с именем test_2gpus.model. В этой папке находятся 2 другие папки: assets и variables и еще один файл с именем saved_model.pb. assets старше пуст, а папка variables содержит 3 файла: variables.data-00000-of-00002, variables.data-00001-of-00002 и variables.index.

Должен ли я сохранять свою модель по-разному при использовании более 1 графического процессора?

Должен ли я получить файл .model или я должен получить эту папку? Если я должен получить эту папку, то как мне загрузить эту папку?

* Использование tenensflow версии 2.0.0

* Использование import tensorflow.keras as keras

1 Ответ

0 голосов
/ 13 февраля 2020

Должен ли я сохранять свою модель по-другому при использовании более 1 графического процессора?

См. Учебное пособие здесь https://www.tensorflow.org/tutorials/distribute/save_and_load

Нет, вы можете сохранить его с помощью model.save(path), а затем загрузить с помощью tf.keras.models.load_model(path).

Должен ли я получить файл .model или эту папку? Если я должен получить эту папку, то как мне загрузить эту папку?

Вы должны получить папку, а затем загрузить, ссылаясь на эту папку.

strategy = tf.distribute.MirroredStrategy()
with strategy.scope():
    model = ... # build model
    model.compile()

folder = "test_2gpus.model"
model.save(folder)
model_loaded = tf.keras.models.load_model(folder)

Если вы получаете ошибку unknown loss, это потому, что модель компилируется при загрузке. tf.keras.models.load_model имеет ключевое слово аргумента compile, которое по умолчанию составляет True. Чтобы обойти ошибку, установите compile=False, а затем в вызове model.compile установите свою потерю. Имейте в виду, что вам не нужно компилировать, если вы хотите только прогнозировать с помощью вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...