提交 469f363e 编写于 作者: B barrierye

Merge branch 'develop' of https://github.com/PaddlePaddle/Serving into download-bert-model-from-bos

...@@ -4,14 +4,19 @@ ...@@ -4,14 +4,19 @@
## Compilation environment requirements ## Compilation environment requirements
- os: CentOS 6u3 - OS: CentOS 7
- gcc: 4.8.2 and later - GCC: 4.8.2 and later
- go: 1.9.2 and later - Golang: 1.9.2 and later
- git:2.17.1 and later - Git:2.17.1 and later
- cmake:3.2.2 and later - CMake:3.2.2 and later
- python:2.7.2 and later - Python:2.7.2 and later
It is recommended to use Docker to prepare the compilation environment for the Paddle service: [CPU Dockerfile.devel](../tools/Dockerfile.devel), [GPU Dockerfile.gpu.devel](../tools/Dockerfile.gpu.devel) It is recommended to use Docker for compilation. We have prepared the Paddle Serving compilation environment for you:
- CPU: `hub.baidubce.com/paddlepaddle/serving:0.2.0-devel`,dockerfile: [Dockerfile.devel](../tools/Dockerfile.devel)
- GPU: `hub.baidubce.com/paddlepaddle/serving:0.2.0-gpu-devel`,dockerfile: [Dockerfile.gpu.devel](../tools/Dockerfile.gpu.devel)
This document will take Python2 as an example to show how to compile Paddle Serving. If you want to compile with Python 3, just adjust the Python options of cmake.
## Get Code ## Get Code
......
...@@ -4,14 +4,19 @@ ...@@ -4,14 +4,19 @@
## 编译环境设置 ## 编译环境设置
- os: CentOS 6u3 - OS: CentOS 7
- gcc: 4.8.2及以上 - GCC: 4.8.2及以上
- go: 1.9.2及以上 - Golang: 1.9.2及以上
- git:2.17.1及以上 - Git:2.17.1及以上
- cmake:3.2.2及以上 - CMake:3.2.2及以上
- python:2.7.2及以上 - Python:2.7.2及以上
推荐使用Docker准备Paddle Serving编译环境:[CPU Dockerfile.devel](../tools/Dockerfile.devel)[GPU Dockerfile.gpu.devel](../tools/Dockerfile.gpu.devel) 推荐使用Docker编译,我们已经为您准备好了Paddle Serving编译环境:
- CPU: `hub.baidubce.com/paddlepaddle/serving:0.2.0-devel`,dockerfile: [Dockerfile.devel](../tools/Dockerfile.devel)
- GPU: `hub.baidubce.com/paddlepaddle/serving:0.2.0-gpu-devel`,dockerfile: [Dockerfile.gpu.devel](../tools/Dockerfile.gpu.devel)
本文档将以Python2为例介绍如何编译Paddle Serving。如果您想用Python3进行编译,只需要调整cmake的Python相关选项即可。
## 获取代码 ## 获取代码
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
Docker (GPU version requires nvidia-docker to be installed on the GPU machine) Docker (GPU version requires nvidia-docker to be installed on the GPU machine)
This document takes Python2 as an example to show how to run Paddle Serving in docker. You can also use Python3 to run related commands by replacing `python` with `python3`.
## CPU ## CPU
### Get docker image ### Get docker image
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
Docker(GPU版本需要在GPU机器上安装nvidia-docker) Docker(GPU版本需要在GPU机器上安装nvidia-docker)
该文档以Python2为例展示如何在Docker中运行Paddle Serving,您也可以通过将`python`更换成`python3`来用Python3运行相关命令。
## CPU版本 ## CPU版本
### 获取镜像 ### 获取镜像
......
...@@ -175,7 +175,6 @@ class Client(object): ...@@ -175,7 +175,6 @@ class Client(object):
return self.fetch_names_ return self.fetch_names_
def shape_check(self, feed, key): def shape_check(self, feed, key):
seq_shape = 1
if key in self.lod_tensor_set: if key in self.lod_tensor_set:
return return
if len(feed[key]) != self.feed_tensor_len[key]: if len(feed[key]) != self.feed_tensor_len[key]:
...@@ -192,7 +191,7 @@ class Client(object): ...@@ -192,7 +191,7 @@ class Client(object):
elif isinstance(fetch, list): elif isinstance(fetch, list):
fetch_list = fetch fetch_list = fetch
else: else:
raise ValueError("fetch only accepts string and list of string") raise ValueError("Fetch only accepts string and list of string")
feed_batch = [] feed_batch = []
if isinstance(feed, dict): if isinstance(feed, dict):
...@@ -200,7 +199,7 @@ class Client(object): ...@@ -200,7 +199,7 @@ class Client(object):
elif isinstance(feed, list): elif isinstance(feed, list):
feed_batch = feed feed_batch = feed
else: else:
raise ValueError("feed only accepts dict and list of dict") raise ValueError("Feed only accepts dict and list of dict")
int_slot_batch = [] int_slot_batch = []
float_slot_batch = [] float_slot_batch = []
...@@ -216,7 +215,7 @@ class Client(object): ...@@ -216,7 +215,7 @@ class Client(object):
if len(fetch_names) == 0: if len(fetch_names) == 0:
raise ValueError( raise ValueError(
"fetch names should not be empty or out of saved fetch list") "Fetch names should not be empty or out of saved fetch list.")
return {} return {}
for i, feed_i in enumerate(feed_batch): for i, feed_i in enumerate(feed_batch):
...@@ -224,7 +223,8 @@ class Client(object): ...@@ -224,7 +223,8 @@ class Client(object):
float_slot = [] float_slot = []
for key in feed_i: for key in feed_i:
if key not in self.feed_names_: if key not in self.feed_names_:
continue raise ValueError("Wrong feed name: {}.".format(key))
self.shape_check(feed_i, key)
if self.feed_types_[key] == int_type: if self.feed_types_[key] == int_type:
if i == 0: if i == 0:
int_feed_names.append(key) int_feed_names.append(key)
...@@ -233,6 +233,8 @@ class Client(object): ...@@ -233,6 +233,8 @@ class Client(object):
if i == 0: if i == 0:
float_feed_names.append(key) float_feed_names.append(key)
float_slot.append(feed_i[key]) float_slot.append(feed_i[key])
if len(int_slot) + len(float_slot) == 0:
raise ValueError("No feed data for predict.")
int_slot_batch.append(int_slot) int_slot_batch.append(int_slot)
float_slot_batch.append(float_slot) float_slot_batch.append(float_slot)
......
...@@ -3,6 +3,7 @@ FROM centos:7.3.1611 ...@@ -3,6 +3,7 @@ FROM centos:7.3.1611
RUN yum -y install wget && \ RUN yum -y install wget && \
yum -y install epel-release && yum -y install patchelf && \ yum -y install epel-release && yum -y install patchelf && \
yum -y install gcc make python-devel && \ yum -y install gcc make python-devel && \
yum -y install python3 python3-devel && \
yum clean all && \ yum clean all && \
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python get-pip.py && rm get-pip.py python get-pip.py && rm get-pip.py
...@@ -26,6 +26,8 @@ RUN yum -y install wget >/dev/null \ ...@@ -26,6 +26,8 @@ RUN yum -y install wget >/dev/null \
&& make >/dev/null && make install >/dev/null \ && make >/dev/null && make install >/dev/null \
&& cd .. \ && cd .. \
&& rm -rf patchelf-0.10* \ && rm -rf patchelf-0.10* \
&& yum install -y python3 python3-devel \
&& pip3 install google protobuf setuptools wheel flask \
&& yum -y update >/dev/null \ && yum -y update >/dev/null \
&& yum -y install dnf >/dev/null \ && yum -y install dnf >/dev/null \
&& yum -y install dnf-plugins-core >/dev/null \ && yum -y install dnf-plugins-core >/dev/null \
......
...@@ -18,5 +18,7 @@ RUN yum -y install wget >/dev/null \ ...@@ -18,5 +18,7 @@ RUN yum -y install wget >/dev/null \
&& python get-pip.py >/dev/null \ && python get-pip.py >/dev/null \
&& pip install google protobuf setuptools wheel flask >/dev/null \ && pip install google protobuf setuptools wheel flask >/dev/null \
&& rm get-pip.py \ && rm get-pip.py \
&& yum install -y python3 python3-devel \
&& pip3 install google protobuf setuptools wheel flask \
&& yum -y install epel-release && yum -y install patchelf \ && yum -y install epel-release && yum -y install patchelf \
&& yum clean all && yum clean all
...@@ -6,6 +6,7 @@ RUN yum -y install wget && \ ...@@ -6,6 +6,7 @@ RUN yum -y install wget && \
yum -y install libSM-1.2.2-2.el7.x86_64 --setopt=protected_multilib=false && \ yum -y install libSM-1.2.2-2.el7.x86_64 --setopt=protected_multilib=false && \
yum -y install libXrender-0.9.10-1.el7.x86_64 --setopt=protected_multilib=false && \ yum -y install libXrender-0.9.10-1.el7.x86_64 --setopt=protected_multilib=false && \
yum -y install libXext-1.3.3-3.el7.x86_64 --setopt=protected_multilib=false && \ yum -y install libXext-1.3.3-3.el7.x86_64 --setopt=protected_multilib=false && \
yum -y install python3 python3-devel && \
yum clean all && \ yum clean all && \
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python get-pip.py && rm get-pip.py && \ python get-pip.py && rm get-pip.py && \
......
...@@ -19,5 +19,7 @@ RUN yum -y install wget >/dev/null \ ...@@ -19,5 +19,7 @@ RUN yum -y install wget >/dev/null \
&& python get-pip.py >/dev/null \ && python get-pip.py >/dev/null \
&& pip install google protobuf setuptools wheel flask >/dev/null \ && pip install google protobuf setuptools wheel flask >/dev/null \
&& rm get-pip.py \ && rm get-pip.py \
&& yum install -y python3 python3-devel \
&& pip3 install google protobuf setuptools wheel flask \
&& yum -y install epel-release && yum -y install patchelf \ && yum -y install epel-release && yum -y install patchelf \
&& yum clean all && yum clean all
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册