Как экспортировать модель активного исполнения?

Завершив свою модель, я хочу экспортировать и развернуть ее, следуя руководству это на веб-сайте TensorFlow. Однако нет никаких указаний на то, как это сделать при активном выполнении, когда я не могу предоставить сеанс или график для builder.add_meta_graph_and_variables().

Это тот случай, когда мой код должен быть активным и графически совместимым, или когда мне нужно сохранить мою модель, импортировать ее в сеанс и экспортировать оттуда?

См. Работа с графиками в руководстве "Активное выполнение". Как там сказано, «развернуть код, написанный для активного выполнения, сложнее», и вам нужно будет проделать дополнительную работу для себя. Тем не менее, нетерпеливый режим станет еще более актуальным в будущем, и мы можем увидеть улучшения в этой области.

jdehesa 09.11.2018 18:15

Спасибо за ответ jdehesa! Я с нетерпением жду версии 2.0, но, вероятно, она выйдет не раньше декабря. Между «либо сгенерируйте график из модели, либо запустите среду выполнения Python и код прямо на сервере», я думаю, что попробую первое. Похоже, это та же проблема, которую я поднял с это, поскольку многие методы работают только для графа или для нетерпеливого, а не для обоих.

Jordan Patterson 09.11.2018 18:32
Udacity Nanodegree Capstone Project: Классификатор пород собак
Udacity Nanodegree Capstone Project: Классификатор пород собак
Вы можете ознакомиться со скриптами проекта и данными на github .
6
2
1 298
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

TF 2.0 Alpha поддерживает экспорт / сохранение модели нетерпеливого выполнения (по умолчанию в версии 2.0 установлено «нетерпеливое выполнение»). SavedModel содержит полную программу TensorFlow, включая веса и вычисления.

Пример кода для этого же показан ниже:

!pip install -q tensorflow==2.0.0-alpha0
import tensorflow as tf

pretrained_model = tf.keras.applications.MobileNet()
tf.saved_model.save(pretrained_model, "/tmp/mobilenet/1/")

#Loading the saved model
loaded = tf.saved_model.load("/tmp/mobilenet/1/")
infer = loaded.signatures["serving_default"]

Обслуживание модели:

nohup tensorflow_model_server \
  --rest_api_port=8501 \
  --model_name=mobilenet \
  --model_base_path = "/tmp/mobilenet" >server.log 2>&1

#Sending the Request for Inference

!pip install -q requests
import json
import numpy
import requests
data = json.dumps({"signature_name": "serving_default",
                   "instances": x.tolist()})
headers = {"content-type": "application/json"}
json_response = requests.post('http://localhost:8501/v1/models/mobilenet:predict',
                              data=data, headers=headers)
predictions = numpy.array(json.loads(json_response.text)["predictions"])

Это действительно должно отдать должное .... tenorflow.org/beta/guide/saved_model, поскольку пример скопирован прямо оттуда.

user3496060 11.07.2019 22:28

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