TensorFlow服务未能为TensorFlow 2.0 keras.layers.LSTM服务
为什么TensorFlow服务无法为这个简单的LSTM keras层提供服务,而它使用保存的\u model\u cli run成功运行?我怎样才能修好它 TensorFlow版本2.0 alphaTensorFlow服务未能为TensorFlow 2.0 keras.layers.LSTM服务,keras,tensorflow-serving,tensorflow2.0,Keras,Tensorflow Serving,Tensorflow2.0,为什么TensorFlow服务无法为这个简单的LSTM keras层提供服务,而它使用保存的\u model\u cli run成功运行?我怎样才能修好它 TensorFlow版本2.0 alpha $ pip install tensorflow==2.0.0-alpha0 保存的模型将重新生成: 导入tensorflow作为tf 从tensorflow.keras.models导入模型 从tensorflow.keras.layers导入输入,LSTM img_宽度=10 img_高度
$ pip install tensorflow==2.0.0-alpha0
保存的模型将重新生成:
导入tensorflow作为tf
从tensorflow.keras.models导入模型
从tensorflow.keras.layers导入输入,LSTM
img_宽度=10
img_高度=10
def build_模型:
input\u img=Inputshape=img\u width*img\u height,1,name='input\u data',dtype='float32'
x=LSTM12,返回序列=False,name='lstm\u 1'input\u img
模型=模型输入\u img,x
回归模型
def保存:
模型=构建模型
tf.saved_model.savemodel、/测试_keras_服务/1/
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
拯救
TensorFlow服务安装:
$ docker pull tensorflow/serving
$ docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
tensorflow/serving latest 38bee21b2ca0 2 months ago 229MB
为SavedModel提供服务
$ docker run -p 8501:8501 --mount type=bind,source=/the/path/of/dir/test_keras_serving,target=/models/my_model -e MODEL_NAME=my_model -t tensorflow/serving
使用TensorFlow服务预测python代码
导入json
导入请求
将numpy作为np导入
def pred:
inp_值=np.zeros2100,1
_url='1〕http://localhost:8501/v1/models/my_model:predict'
headers={缓存控制:无缓存,内容类型:application/json}
data=json.dumps{signature\u name:service\u default,instances:inp\u value.tolist}
json\u response=requests.postrl=\u url,data=data,headers=headers
printjson\u响应
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
pred
在客户端,结果是
<Response [400]>
但是,SavedModel与saved_model_cli配合良好:
产出:
Result for output key lstm_1:
[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
如何使用TensorFlow服务获得与已保存的\u model \u cli相同的结果?使用docker pull TensorFlow解决了此问题/Serving:nightly使用docker pull TensorFlow解决了此问题/Serving:nightly请避免在评论中回答问题。您可以将此添加为答案并接受自己的答案。
$ saved_model_cli run --dir ./test_keras_serving/1 --tag_set serve --signature_def serving_default --input_exprs input_data=np.zeros((2,100,1))
Result for output key lstm_1:
[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]