diff --git a/doc/Offical_Docs/10-0_Terminology.md b/doc/Offical_Docs/10-0_Terminology.md new file mode 100644 index 0000000000000000000000000000000000000000..329002b0ab2174989e0d5ef885451e225f04cd1a --- /dev/null +++ b/doc/Offical_Docs/10-0_Terminology.md @@ -0,0 +1 @@ +# 名词术语解释 diff --git a/doc/Offical_Docs/11-0_Contributors.md b/doc/Offical_Docs/11-0_Contributors.md new file mode 100644 index 0000000000000000000000000000000000000000..76d75af95bdc5b20f0493308a5656727c5574b3b --- /dev/null +++ b/doc/Offical_Docs/11-0_Contributors.md @@ -0,0 +1,13 @@ +# 开发者贡献 + + +如果您想为Paddle Serving贡献代码,请参考 [Contribution Guidelines(English)](doc/Contribute_EN.md) + +- 感谢 [@loveululu](https://github.com/loveululu) 提供 Cube python API +- 感谢 [@EtachGu](https://github.com/EtachGu) 更新 docker 使用命令 +- 感谢 [@BeyondYourself](https://github.com/BeyondYourself) 提供grpc教程,更新FAQ教程,整理文件目录。 +- 感谢 [@mcl-stone](https://github.com/mcl-stone) 提供faster rcnn benchmark脚本 +- 感谢 [@cg82616424](https://github.com/cg82616424) 提供unet benchmark脚本和修改部分注释错误 +- 感谢 [@cuicheng01](https://github.com/cuicheng01) 提供PaddleClas的11个模型 +- 感谢 [@Jiaqi Liu](https://github.com/LiuChiachi) 新增list[str]类型输入的预测支持 +- 感谢 [@Bin Lu](https://github.com/Intsigstephon) 提供PP-Shitu C++模型示例 diff --git a/doc/Offical_Docs/11_Lookup_CN.md b/doc/Offical_Docs/11_Lookup_CN.md deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/doc/Offical_Docs/3-1_QuickStart_Cpp_Resnet_CN.md b/doc/Offical_Docs/3-1_QuickStart_Cpp_Resnet_CN.md new file mode 100644 index 0000000000000000000000000000000000000000..f1ba0b11225eb3b65db27feebe3b5f49c8ba94b6 --- /dev/null +++ b/doc/Offical_Docs/3-1_QuickStart_Cpp_Resnet_CN.md @@ -0,0 +1,92 @@ +# C++ Serving 快速部署案例 + +## 模型介绍 +残差网络(ResNet)于2015年被提出,摘得 ImageNet 榜单5项第一,成绩大幅领先第二名,是 CNN 图像史上的一个里程碑。 + +从经验上看,网络结构层数越多,有利于复杂特征的提取,从理论上讲会取得更好的结果。但是,随着网络层数的增加,准确率会趋于饱和甚至会下降,称为退化问题(Degradation problem)。其根本原因是深层网络出现梯度消失或者梯度爆炸的问题。残差网络利用短路机制加入了残差单元,解决了退化问题。 + +ResNet 网络是参考了 VGG19 网络,加入残差单元,ResNet50 有50层网络。 + +## 部署步骤 + +前提条件是你已完成[环境安装]()步骤,并已验证环境安装成功,此处不在赘述。 + +克隆 Serving 仓库后,进入 `examples/C++/PaddleClas/resnet_50_vd` 目录下,已提供程序、配置和性能测试脚本。 +``` +git clone https://github.com/PaddlePaddle/Serving +``` + +按以下5个步骤操作即可实现模型部署。 +- 一.获取模型 +- 二.保存 Serving 部署的模型参数 +- 三.启动服务 +- 四.启动客户端 + +**一.获取模型** + +下载 `ResNet50_vd` 的 推理模型 +``` +wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/inference/ResNet50_vd_infer.tar && tar xf ResNet50_vd_infer.tar + +``` + +**二.保存 Serving 部署的模型参数** + +用 `paddle_serving_client` 把下载的推理模型转换成易于 Serving 部署的模型格式,完整信息请参考 [保存用于 Serving 部署的模型参数](./5-1_Save_Model_Params_CN.md)。 + +``` +python3 -m paddle_serving_client.convert --dirname ./ResNet50_vd_infer/ \ + --model_filename inference.pdmodel \ + --params_filename inference.pdiparams \ + --serving_server ./ResNet50_vd_serving/ \ + --serving_client ./ResNet50_vd_client/ +``` + +保存参数后,会在当前文件夹多出 `ResNet50_vd_serving` 和 `ResNet50_vd_client` 的文件夹: +``` +├── daisy.jpg +├── http_client.py +├── imagenet.label +├── ResNet50_vd_client +│   ├── serving_client_conf.prototxt +│   └── serving_client_conf.stream.prototxt +├── ResNet50_vd_infer +│   ├── inference.pdiparams +│   ├── inference.pdiparams.info +│   └── inference.pdmodel +├── ResNet50_vd_serving +│   ├── fluid_time_file +│   ├── inference.pdiparams +│   ├── inference.pdmodel +│   ├── serving_server_conf.prototxt +│   └── serving_server_conf.stream.prototxt +├── rpc_client.py +``` + +**三.启动服务** + +C++ Serving 服务可以指定一个网络端口同时接收 HTTP、gRPC 和 bRPC 请求。命令参数 `--model` 指定模型路径,`--gpu_ids` 指定 GPU 卡,`--port` 指定端口。 + +``` +python3 -m paddle_serving_server.serve --model ResNet50_vd_serving --gpu_ids 0 --port 9394 +``` + +**四.启动客户端** + +PYTHON 程序 `http_client.py` 封装了 HTTP 请求客户端,运行以下命令: + +``` +python3 http_client.py +``` + +PYTHON 程序 `rpc_client.py` 封装了 gRPC 请求客户端,运行以下命令: + +``` +python3 rpc_client.py +``` + +成功运行后,模型预测的结果会打印如下: + +``` +prediction: daisy, probability: 0.9341399073600769 +```