docker容器内使用rpc调用目标检测服务报错
Created by: omtbreak
客户端
客户端环境
客户端系统是MacOS,使用Docker Run中的方式配置了本地的docker容器环境
python3.7
paddle-serving-app 0.0.3
paddle-serving-client 0.2.2
paddlepaddle 1.8.0
rpc调用代码
在容器中运行rpc调用的代码, 根据Faster RCNN on Serving进行修改得到的,使用的文件均为容器内路径, 外网访问端口为18050,内网开启端口为8050
from paddle_serving_client import Client
from paddle_serving_app.reader import *
import numpy as np
preprocess = Sequential([
File2Image(), BGR2RGB(), Div(255.0),
Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225], False),
Resize(800, 1333), Transpose((2, 0, 1))
])
postprocess = RCNNPostprocess("/paddle/label_list.txt", "output")
client = Client()
client.load_client_config("/paddle/serving_client_conf.prototxt")
client.connect(['122.5.106.226:18050'])
im = preprocess('/paddle/000000570688.jpg')
fetch_map = client.predict(feed={"image": im, "im_info": np.array(list(im.shape[1:]) + [1.0]),
"im_shape": np.array(list(im.shape[1:]) + [1.0])}, fetch=["multiclass_nms_0.tmp_0"])
fetch_map["image"] = '/paddle/000000570688.jpg'
postprocess(fetch_map)
print(fetch_map)
serving_client_conf.prototxt
根据export serving model得到的
服务器端
服务器环境
ubuntu18
python3.6
paddle-serving-app 0.0.2
paddle-serving-client 0.2.1
paddle-serving-server 0.2.1
serving_server_conf.prototxt
同样根据export serving model得到的
启动服务命令
GLOG_v=2 python3 -m paddle_serving_server.serve --model servingExport/cascade_rcnn_r50_fpn_1x/serving_server --port 8050
出现的报错
服务器端报错各种维度不匹配,我在客户端代码(以上)的Sequential之前对图片尺寸进行修改大小,Sequential中的图像尺寸仍和模型训练的config中的尺寸一致,会发生不同的维度不匹配问题。 我的困惑是,Sequential会对应该可以将图片转换到模型可以使用的图片尺寸,即800x1333,服务器端部署的模型在训练时也同样使用的是800x1333的图片大小,为什么会出现维度不匹配的问题。