Я использую Keras с Tensorflow в качестве backend.
Я пытаюсь сохранить модель в своем основном процессе, а затем загрузить/запустить (т.е. вызвать model.predict
) в рамках другого процесса.
В настоящее время я просто пытаюсь использовать наивный подход из документов для сохранения/загрузки модели: https://keras.io/getting-started/faq/#how-can-i-save-a-keras-model.
Итак, в основном:
-
model.save()
в основном процессе -
model = load_model()
в дочернем процессе -
model.predict()
в дочернем процессе
Однако он просто зависает при вызове load_model
.
Поиск вокруг Я обнаружил этот потенциально связанный ответ, предполагающий, что Keras можно использовать только в одном процессе: используя многопроцессорную обработку с помощью anano, но я не уверен, что это правда ( как представляется, не находят много на этом).
Есть ли способ достичь моей цели? Приветствуется описание высокого уровня или короткий пример.
Примечание. Я попытался подходить к методам передачи графа процессу, но сработал, так как кажется, что графики тензорного потока не подбираются (связанная с этим ссылка SO здесь: Tensorflow: Передача сеанса в многопроцесс python). Если действительно есть способ передать график/модель тензорного потока в дочерний процесс, тогда я также открыт для этого.
Спасибо!