2. 模型编译
2.1. 模型下载
本例中将以 ONNX model zoo 中的 BERT-Squad 模型为例。
首先通过 wget
命令下载该模型:
wget https://github.com/onnx/models/raw/87d452a218093f6a60ceb62712ffe1186dce6d64/text/machine_comprehension/bert-squad/model/bertsquad-12.onnx
2.2. 模型转换和编译
通过以下的命令将 bertsquad-12.onnx
模型转换成精度为FP16、batch size为16的模型并编译成PopEF格式的二进制文件 executable.popef
。
命令中模型转换的参数请参考 PopRT User Guide 。
gc-docker -- --rm \
-v `pwd -P`:/model_conversion \
-w /model_conversion \
graphcorecn/poprt-staging:latest \
--input_model bertsquad-12.onnx \
--input_shape input_ids:0=16,256 input_mask:0=16,256 segment_ids:0=16,256 unique_ids_raw_output___9:0=16 \
--precision fp16 \
--convert_version 11 \
--export_popef \
--ipu_version ipu21
备注
如果在 IPU-M2000 或 Bow-2000 环境中测试,请使用参数 --ipu_version ipu2
代替 --ipu_version ipu21
。
模型转换成功,在目录中将包含以下文件。
$ tree . -L 1
├── bertsquad-12.onnx
├── bertsquad-12.onnx.optimized.onnx
├── executable.popef
bertsquad-12.onnx
: 原始模型bertsquad-12.onnx.optimized.onnx
: 通过PopRT转换后的模型executable.popef
: 编译得到的PopEF文件