未验证 提交 c9eab242 编写于 作者: J Jiawei Wang 提交者: GitHub

Merge branch 'develop' into win

......@@ -38,7 +38,8 @@ start = time.time()
image_file = "https://paddle-serving.bj.bcebos.com/imagenet-example/daisy.jpg"
for i in range(10):
img = seq(image_file)
fetch_map = client.predict(feed={"image": img}, fetch=["score"])
fetch_map = client.predict(
feed={"image": img}, fetch=["score"], batch=False)
prob = max(fetch_map["score"][0])
label = label_dict[fetch_map["score"][0].tolist().index(prob)].strip(
).replace(",", "")
......
......@@ -15,6 +15,7 @@
from paddle_serving_server.web_service import WebService
import sys
from paddle_serving_app.reader import LACReader
import numpy as np
class LACService(WebService):
......@@ -23,13 +24,21 @@ class LACService(WebService):
def preprocess(self, feed={}, fetch=[]):
feed_batch = []
fetch = ["crf_decode"]
lod_info = [0]
is_batch = True
for ins in feed:
if "words" not in ins:
raise ("feed data error!")
feed_data = self.reader.process(ins["words"])
feed_batch.append({"words": feed_data})
fetch = ["crf_decode"]
return feed_batch, fetch
feed_batch.append(np.array(feed_data).reshape(len(feed_data), 1))
lod_info.append(lod_info[-1] + len(feed_data))
feed_dict = {
"words": np.concatenate(
feed_batch, axis=0),
"words.lod": lod_info
}
return feed_dict, fetch, is_batch
def postprocess(self, feed={}, fetch=[], fetch_map={}):
batch_ret = []
......
# Simple Pipeline WebService
# Imagenet Pipeline WebService
This document will takes UCI service as an example to introduce how to use Pipeline WebService.
This document will takes Imagenet service as an example to introduce how to use Pipeline WebService.
## Get model
```
sh get_data.sh
sh get_model.sh
```
## Start server
```
python web_service.py &>log.txt &
python resnet50_web_service.py &>log.txt &
```
## Http test
## RPC test
```
curl -X POST -k http://localhost:18082/uci/prediction -d '{"key": ["x"], "value": ["0.0137, -0.1136, 0.2553, -0.0692, 0.0582, -0.0727, -0.1583, -0.0584, 0.6283, 0.4919, 0.1856, 0.0795, -0.0332"]}'
python pipeline_rpc_client.py
```
......@@ -52,10 +52,11 @@ class ImagenetOp(Op):
for score in score_list:
score = score.tolist()
max_score = max(score)
#result["label"].append(self.label_dict[score.index(max_score)]
#.strip().replace(",", ""))
#result["prob"].append(max_score)
#print(result)
result["label"].append(self.label_dict[score.index(max_score)]
.strip().replace(",", ""))
result["prob"].append(max_score)
result["label"] = str(result["label"])
result["prob"] = str(result["prob"])
return result, None, ""
......
......@@ -37,6 +37,7 @@ class SentaService(WebService):
#定义senta模型预测服务的预处理,调用顺序:lac reader->lac模型预测->预测结果后处理->senta reader
def preprocess(self, feed=[], fetch=[]):
feed_batch = []
is_batch = True
words_lod = [0]
for ins in feed:
if "words" not in ins:
......@@ -64,14 +65,13 @@ class SentaService(WebService):
return {
"words": np.concatenate(feed_batch),
"words.lod": words_lod
}, fetch
}, fetch, is_batch
senta_service = SentaService(name="senta")
senta_service.load_model_config("senta_bilstm_model")
senta_service.prepare_server(workdir="workdir")
senta_service.init_lac_client(
lac_port=9300,
lac_client_config="lac/lac_model/serving_server_conf.prototxt")
lac_port=9300, lac_client_config="lac_model/serving_server_conf.prototxt")
senta_service.run_rpc_service()
senta_service.run_web_service()
......@@ -1343,7 +1343,7 @@ class ResponseOp(Op):
type(var)))
_LOGGER.error("(logid={}) Failed to pack RPC "
"response package: {}".format(
channeldata.id, resp.error_info))
channeldata.id, resp.err_msg))
break
resp.value.append(var)
resp.key.append(name)
......
......@@ -23,7 +23,7 @@ import socket
from .channel import ChannelDataErrcode
from .proto import pipeline_service_pb2
from .proto import pipeline_service_pb2_grpc
import six
_LOGGER = logging.getLogger(__name__)
......@@ -53,7 +53,10 @@ class PipelineClient(object):
if logid is None:
req.logid = 0
else:
req.logid = long(logid)
if six.PY2:
req.logid = long(logid)
elif six.PY3:
req.logid = int(log_id)
feed_dict.pop("logid")
clientip = feed_dict.get("clientip")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册