Ошибка при использовании tf.saved_model.simple_save () - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь разместить модель классификации изображений на своем компьютере, я пытался реализовать шаги, описанные в этой статье Среднее обслуживание моделей ml

Фрагмент кода, который я использовал:

import tensorflow as tf


# The export path contains the name and the version of the model
tf.keras.backend.set_learning_phase(0) # Ignore dropout at inference
model = tf.keras.models.load_model('./model_new.hdf5')
export_path = './model/1'

# Fetch the Keras session and save the model
# The signature definition is defined by the input and output tensors
# And stored with the default serving key
with tf.keras.backend.get_session() as sess:
    tf.saved_model.simple_save(
       sess,
       export_path,
       inputs={'input_image': model.input},
       outputs={t.name:t for t in model.outputs})

как указано в статье выше.Моя модель хранится в файле model_new.hdf5, но я получаю следующее сообщение об ошибке:

NameError: имя 'tf' не определено

в строке

model = tf.keras.models.load_model ('./ model_new.hdf5')

это правильный способ использования tf.saved_model.simple_save ()?

1 Ответ

0 голосов
/ 21 марта 2019

Это ошибка при загрузке вашей модели, а не tf.saved_model.simple_save(). Когда вы загружаете модель Keras, вам нужно обрабатывать пользовательские объекты или пользовательские слои. Вы можете сделать это, передав custom_objects dict, который содержит tf в вашем случае:

import tensorflow as tf
model = keras.models.load_model('model_new.hdf5', custom_objects={'tf': tf})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...