# Anakin 运行模型示例

Anakin目前只支持NCHW的格式

示例文件在test/framework/net下

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

示例文件为打开example_nv_cnn_net.cpp，整体流程如下：

- 将模型的的path设置为anakin模型的路径，初始化NV平台的图对象。 anakin模型可以通过转换器转化caffe或Paddle的模型得到
- 根据模型设置网络图的输入尺寸，进行图优化
- 根据优化后的网络图初始化网络执行器
- 取出网络的输入tensor，将数据拷贝到输入tensor
- 运行推导
- 取出网络的输出tensor

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

## 在X86上运行RNN模型

示例文件为example_x86_rnn_net.cpp

整体流程与在NV的GPU上运行CNN模型相似，不同之处如下：

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

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

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

示例文件为example_nv_cnn_net_multi_thread.cpp ，示例使用worker的同步预测接口

整体流程与在NV的GPU上运行CNN模型相似，不同之处如下：

- 用模型地址和线程池大小初始化worker对象
- 将输入tensor注入任务队列,获得输出tensor
