tf-serving部署tensorflow2模型

tf-serving部署tensorflow2模型

tf-serving部署tensorflow2模型,主要可以分为三大步:

  1. 将模型保存为pb格式,可以使用API tf.keras.models.save(model, model_dir)
  2. 用docker启动tensorflow serving服务,如果没有docker,需要自行安装,然后docker pull tensorflow/serving拉取tf-serving镜像,网上有很多教程
  3. 写脚本去调用API服务,这一步可以使用各种语言实现,就是写一个post请求,Python的话,可以用request库。

对于第1步,使用上面的API直接保存就行了,不过对于使用keras搭建模型,最好使用Sequential或者Functional方式,因为subclass方式搭建的模型,保存之后做inference相对麻烦。因为subclass方式搭建的模型自由度更大,可能需要用到@tf.function去给需要相应的函数做装饰。

对于第2步,可以模仿这条命令启动tf-serving服务,
sudo docker run -p 5000:8501 --mount type=bind,source=/home/textcnn, -e MODEL_NAME=textcnn -t tensorflow/serving &。
简单解释下参数,5000是自己设定的外网端口,可以根据需要,设定为别的;8501不需要改变,是内网端口;source是模型存放的文件夹路径;MODEL_NAME自己填一个

第2步成功后,就可以进行第3步了,可以用Python request库写一个post请求,去访问服务器,获取结果。
下面代码是个简单示例,输入是经处理后的文本x_test_padded_sequences,因为是numpy格式,需要转换为list格式。http地址需要填写自己的服务器地址,这样就可以简单获取到结果了。

pdata = {"inputs": x_padded_sequences.tolist()}
param = json.dumps(pdata)
res = requests.post("http://xxx.xxx.xxx.xxx:5000/v1/models/textcnn:predict", data=param)
print(res.text)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值