提交 7847239f 编写于 作者: D Dong Daxiang 提交者: GitHub

Merge pull request #338 from MRXLT/doc-fix-v1

fix doc and code for 0.2.0
...@@ -13,10 +13,10 @@ module = hub.Module(model_name) ...@@ -13,10 +13,10 @@ module = hub.Module(model_name)
inputs, outputs, program = module.context( inputs, outputs, program = module.context(
trainable=True, max_seq_len=20) trainable=True, max_seq_len=20)
feed_keys = ["input_ids", "position_ids", "segment_ids", feed_keys = ["input_ids", "position_ids", "segment_ids",
"input_mask", "pooled_output", "sequence_output"] "input_mask"]
fetch_keys = ["pooled_output", "sequence_output"] fetch_keys = ["pooled_output", "sequence_output"]
feed_dict = dict(zip(feed_keys, [inputs[x] for x in feed_keys])) feed_dict = dict(zip(feed_keys, [inputs[x] for x in feed_keys]))
fetch_dict = dict(zip(fetch_keys, [outputs[x]] for x in fetch_keys)) fetch_dict = dict(zip(fetch_keys, [outputs[x] for x in fetch_keys]))
import paddle_serving_client.io as serving_io import paddle_serving_client.io as serving_io
serving_io.save_model("bert_seq20_model", "bert_seq20_client", serving_io.save_model("bert_seq20_model", "bert_seq20_client",
......
...@@ -5,12 +5,17 @@ ...@@ -5,12 +5,17 @@
### 获取模型 ### 获取模型
示例中采用[Paddlehub](https://github.com/PaddlePaddle/PaddleHub)中的[BERT中文模型](https://www.paddlepaddle.org.cn/hubdetail?name=bert_chinese_L-12_H-768_A-12&en_category=SemanticModel) 示例中采用[Paddlehub](https://github.com/PaddlePaddle/PaddleHub)中的[BERT中文模型](https://www.paddlepaddle.org.cn/hubdetail?name=bert_chinese_L-12_H-768_A-12&en_category=SemanticModel)
请先安装paddlehub
```
pip install paddlehub
```
执行 执行
``` ```
python prepare_model.py python prepare_model.py 20
``` ```
生成server端配置文件与模型文件,存放在serving_server_model文件夹 参数20表示BERT模型中的max_seq_len,即预处理后的样本长度。
生成client端配置文件,存放在serving_client_conf文件夹 生成server端配置文件与模型文件,存放在bert_seq20_model文件夹
生成client端配置文件,存放在bert_seq20_client文件夹
### 获取词典和样例数据 ### 获取词典和样例数据
...@@ -22,19 +27,24 @@ sh get_data.sh ...@@ -22,19 +27,24 @@ sh get_data.sh
### 启动RPC预测服务 ### 启动RPC预测服务
执行 执行
``` ```
python -m paddle_serving_server.serve --model serving_server_model/ --port 9292 #启动cpu预测服务 python -m paddle_serving_server.serve --model bert_seq20_model/ --port 9292 #启动cpu预测服务
``` ```
或者 或者
``` ```
python -m paddle_serving_server_gpu.serve --model serving_server_model/ --port 9292 --gpu_ids 0 #在gpu 0上启动gpu预测服务 python -m paddle_serving_server_gpu.serve --model bert_seq20_model/ --port 9292 --gpu_ids 0 #在gpu 0上启动gpu预测服务
``` ```
### 执行预测 ### 执行预测
执行预测前需要安装paddle_serving_app,模块中提供了BERT模型的数据预处理方法。
```
pip install paddle_serving_app
```
执行
``` ```
python bert_rpc_client.py --thread 4 cat data-c.txt | python bert_client.py
``` ```
启动client读取data-c.txt中的数据进行预测,--thread参数控制client的进程数,预测结束后会打印出每个进程的耗时,server端的地址在脚本中修改。 启动client读取data-c.txt中的数据进行预测,预测结果为文本的向量表示(由于数据较多,脚本中没有将输出进行打印),server端的地址在脚本中修改。
### 启动HTTP预测服务 ### 启动HTTP预测服务
``` ```
...@@ -42,7 +52,7 @@ python bert_rpc_client.py --thread 4 ...@@ -42,7 +52,7 @@ python bert_rpc_client.py --thread 4
``` ```
通过环境变量指定gpu预测服务使用的gpu,示例中指定索引为0和1的两块gpu 通过环境变量指定gpu预测服务使用的gpu,示例中指定索引为0和1的两块gpu
``` ```
python bert_web_service.py serving_server_model/ 9292 #启动gpu预测服务 python bert_web_service.py bert_seq20_model/ 9292 #启动gpu预测服务
``` ```
### 执行预测 ### 执行预测
......
...@@ -25,12 +25,13 @@ from paddlehub.common.logger import logger ...@@ -25,12 +25,13 @@ from paddlehub.common.logger import logger
import socket import socket
from paddle_serving_client import Client from paddle_serving_client import Client
from paddle_serving_client.utils import benchmark_args from paddle_serving_client.utils import benchmark_args
from paddle_serving_app import ChineseBertReader
args = benchmark_args() args = benchmark_args()
fin = open("data-c.txt") reader = ChineseBertReader(max_seq_len=20)
reader = BertReader(vocab_file="vocab.txt", max_seq_len=128)
fetch = ["pooled_output"] fetch = ["pooled_output"]
endpoint_list = ["127.0.0.1:9494"] endpoint_list = ["127.0.0.1:9292"]
client = Client() client = Client()
client.load_client_config(args.model) client.load_client_config(args.model)
client.connect(endpoint_list) client.connect(endpoint_list)
......
...@@ -14,7 +14,8 @@ python local_train.py ...@@ -14,7 +14,8 @@ python local_train.py
### 启动RPC预测服务 ### 启动RPC预测服务
``` ```
python -m paddle_serving_server.serve --model ctr_serving_model/ --port 9292 python -m paddle_serving_server.serve --model ctr_serving_model/ --port 9292 #启动CPU预测服务
python -m paddle_serving_server_gpu.serve --model ctr_serving_model/ --port 9292 --gpu_ids 0 #在GPU 0上启动预测服务
``` ```
### 执行预测 ### 执行预测
...@@ -22,3 +23,4 @@ python -m paddle_serving_server.serve --model ctr_serving_model/ --port 9292 ...@@ -22,3 +23,4 @@ python -m paddle_serving_server.serve --model ctr_serving_model/ --port 9292
``` ```
python test_client.py ctr_client_conf/serving_client_conf.prototxt raw_data/ python test_client.py ctr_client_conf/serving_client_conf.prototxt raw_data/
``` ```
预测完毕会输出预测过程的耗时。
...@@ -34,6 +34,6 @@ python -m paddle_serving_server_gpu.serve --model ResNet50_vd_model --port 9393 ...@@ -34,6 +34,6 @@ python -m paddle_serving_server_gpu.serve --model ResNet50_vd_model --port 9393
client端进行预测 client端进行预测
``` ```
python image_rpc_client.py conf_and_model/serving_client_conf/serving_client_conf.prototxt python image_rpc_client.py ResNet50_vd_client_config/serving_client_conf.prototxt
``` ```
*server端示例中服务端口为9393端口,client端示例中数据来自./data文件夹,server端地址为本地9393端口,可根据实际情况更改脚本。* *server端示例中服务端口为9393端口,client端示例中数据来自./data文件夹,server端地址为本地9393端口,可根据实际情况更改脚本。*
...@@ -4,4 +4,4 @@ wget --no-check-certificate https://paddle-serving.bj.bcebos.com/imagenet-exampl ...@@ -4,4 +4,4 @@ wget --no-check-certificate https://paddle-serving.bj.bcebos.com/imagenet-exampl
tar -xzvf ResNet101_vd.tar.gz tar -xzvf ResNet101_vd.tar.gz
wget --no-check-certificate https://paddle-serving.bj.bcebos.com/imagenet-example/image_data.tar.gz wget --no-check-certificate https://paddle-serving.bj.bcebos.com/imagenet-example/image_data.tar.gz
tar -xzvf imgae_data.tar.gz tar -xzvf image_data.tar.gz
...@@ -11,11 +11,11 @@ sh get_data.sh ...@@ -11,11 +11,11 @@ sh get_data.sh
### 启动RPC预测服务 ### 启动RPC预测服务
``` ```
python -m paddle_serving_server.serve --model imdb_bow_model/ --port 9292 python -m paddle_serving_server.serve --model imdb_cnn_model/ --port 9292
``` ```
### 执行预测 ### 执行预测
``` ```
head test_data/part-0 | python test_client.py imdb_lstm_client_conf/serving_client_conf.prototxt imdb.vocab head test_data/part-0 | python test_client.py imdb_cnn_client_conf/serving_client_conf.prototxt imdb.vocab
``` ```
预测test_data/part-0的前十个样例。 预测test_data/part-0的前十个样例。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册