anakin_example.md 1.6 KB
Newer Older
1 2
# Anakin 运行模型示例

J
Jeff Wang 已提交
3
Anakin目前只支持NCHW的格式
4

J
Jeff Wang 已提交
5 6 7
示例文件在test/framework/net下

## 在NV的GPU上运行CNN模型
8

J
Jeff Wang 已提交
9
示例文件为打开example_nv_cnn_net.cpp,整体流程如下:
10 11

- 将模型的的path设置为anakin模型的路径,初始化NV平台的图对象。 anakin模型可以通过转换器转化caffe或Paddle的模型得到
J
Jeff Wang 已提交
12 13 14 15 16 17 18 19 20
- 根据模型设置网络图的输入尺寸,进行图优化
- 根据优化后的网络图初始化网络执行器
- 取出网络的输入tensor,将数据拷贝到输入tensor
- 运行推导
- 取出网络的输出tensor

以NV平台为例演示Anakin框架的使用方法,注意编译时需要打开GPU编译开关

## 在X86上运行RNN模型
21

J
Jeff Wang 已提交
22
示例文件为example_x86_rnn_net.cpp
23

J
Jeff Wang 已提交
24
整体流程与在NV的GPU上运行CNN模型相似,不同之处如下:
25

J
Jeff Wang 已提交
26 27 28 29 30 31
- 使用X86标识初始化图对象和网络执行器对象
- rnn模型的输入尺寸是可变的,初始化图时的输入维度是维度的最大值,输入维度N代表总的词的个数。还需要设置输入tensor的seq_offset来标示这些词是如何划分为句子的,如{0,5,12}表示共有12个词,其中第0到第4个词是第一句话,第5到第11个词是第二句话

以X86平台为例演示Anakin框架的使用方法,注意编译时需要打开X86编译开关

## 在NV的GPU上使用Anakin的线程池运行CNN模型
32

J
Jeff Wang 已提交
33
示例文件为example_nv_cnn_net_multi_thread.cpp ,示例使用worker的同步预测接口
34

J
Jeff Wang 已提交
35
整体流程与在NV的GPU上运行CNN模型相似,不同之处如下:
36

J
Jeff Wang 已提交
37 38
- 用模型地址和线程池大小初始化worker对象
- 将输入tensor注入任务队列,获得输出tensor