我正在通过以下命令使用通用句子编码器预训练模型:
import tensorflow as tf
import tensorflow_hub as hub
MODEL_NAME = 'tf-sentence-encoder'
VERSION = 1
SERVE_PATH = './models/{}/{}'.format(MODEL_NAME, VERSION)
with tf.Graph().as_default():
module = hub.Module("https://tfhub.dev/google/universal-sentence-encoder-large/3")
text = tf.placeholder(tf.string, [None])
embedding = module(text)
init_op = tf.group([tf.global_variables_initializer(),
tf.tables_initializer()]
)
with tf.Session() as session:
session.run(init_op)
tf.saved_model.simple_save(session, SERVE_PATH,
inputs = {"text": text}, outputs = {"embedding": embedding},
legacy_init_op = tf.tables_initializer()
)
如何为RESTFUL API重新加载保存的模型?
答案 0 :(得分:0)
正如Arno在评论中提到的,该问题与Tensorflow服务有关。
使用 tf.saved_model.simple_save
保存模型后,模型将以 .pb
格式保存。
通过使用REST API重新加载保存的模型,我了解使用REST API执行推理。解释如下:
让我们将模型名称视为 tf_sentence_encoder
。您可以使用以下命令查看模型的SignatureDef:
!saved_model_cli show --dir tf_sentence_encoder --all
我们应该使用如下所示的Docker Pull Command安装Tensorflow Serving:
sudo docker pull tensorflow/serving
然后我们必须调用Tensorflow模型服务器:
sudo docker run -p 8501:8501 --mount type = bind,source = / Path_Of_The_Model / tf_sentence_encoder,target = / models / tf_sentence_encoder -e MODEL_NAME = tf_sentence_encoder -t tensorflow / serving&
然后,您可以使用REST API执行预测,如下所示:
curl -d '{"inputs": [5.1,3.3,1.7,0.5]}' \ -X POST http://localhost:8501/v1/models/tf_sentence_encoder:predict