Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
ERNIE
提交
8e3b5f0a
E
ERNIE
项目概览
PaddlePaddle
/
ERNIE
接近 2 年 前同步成功
通知
115
Star
5997
Fork
1271
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
29
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
ERNIE
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
29
Issue
29
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
8e3b5f0a
编写于
3月 22, 2019
作者:
Y
Yibing Liu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add inference readme
上级
a148a889
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
63 addition
and
0 deletion
+63
-0
BERT/inference/README.md
BERT/inference/README.md
+63
-0
未找到文件。
BERT/inference/README.md
0 → 100644
浏览文件 @
8e3b5f0a
# BERT模型inference demo
## 数据预处理
实际应用场景中,模型部署之后用户还需要编写对应的程序对输入进行处理,然后把得到的数据传给模型进行预测。这里为了演示的需要,用
`gen_demo_data.py`
来进行数据处理,包括 tokenization,batching,numericalization,并且把处理后的数据输出为文本文件。使用方法如下:
```
bash
TASK_NAME
=
"xnli"
DATA_PATH
=
/path/to/xnli/data/
BERT_BASE_PATH
=
/path/to/bert/pretrained/model/
python gen_demo_data.py
\
--task_name
${
TASK_NAME
}
\
--data_path
${
DATA_PATH
}
\
--vocab_path
"
${
BERT_BASE_PATH
}
/vocab.txt"
\
--batch_size
4096
\
--in_tokens
\
>
data.txt
```
**生成的数据格式**
生成的数据一行代表一个
`batch`
, 包含四个字段
```
text
src_id, pos_id, segment_id, input_mask
```
字段之间按照分号(;)分隔,其中各字段内部
`shape`
和
`data`
按照冒号(:)分隔,
`shape`
和
`data`
内部按空格分隔,
`input_mask`
为 FLOAT32 类型,其余字段为 INT64 类型。
## 编译和运行
为了编译 inference demo,
`C++`
编译器需要支持
`C++11`
标准。
首先下载对应的
[
PaddlePaddle预测库
](
http://paddlepaddle.org/documentation/docs/zh/1.3/advanced_usage/deploy/inference/build_and_install_lib_cn.html
)
, 根据使用的 paddle 的版本和配置状况 (是否使用 avx, mkl, 以及 cuda, cudnn 版本) 选择下载对应的版本,并解压至
`inference`
目录,会得到
`fluid_inference`
子目录。
假设
`paddle_infer_lib_path`
是刚才解压得到的
`fluid_inference`
子目录的绝对路径,设置运行相关的环境变量(以
`cpu_avx_mkl`
版本为例)
```
bash
LD_LIBRARY_PATH
=
${
paddle_infer_lib_path
}
/paddle/lib/:
$LD_LIBRARY_PATH
LD_LIBRARY_PATH
=
${
paddle_infer_lib_path
}
/third_party/install/mklml/lib:
$LD_LIBRARY_PATH
LD_LIBRARY_PATH
=
${
paddle_infer_lib_path
}
/third_party/install/mkldnn/lib:
$LD_LIBRARY_PATH
export
LD_LIBRARY_PATH
```
编译 demo
```
bash
mkdir
build
&&
cd
build
cmake ..
-DFLUID_INFER_LIB
=
${
paddle_infer_lib_path
}
make
```
这会在
`build`
目录下生成运行
`inference`
可执行文件。
运行 demo
```
bash
./inference
--logtostderr
\
--model_dir
$INFERENCE_MODEL_PATH
\
--data
$DATA_PATH
\
--repeat
$REPEAT_TIMES
--output_prediction
\
--use_gpu
\
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录