码迷,mamicode.com
首页 > 其他好文 > 详细

TensorRT Development document

时间:2019-05-11 18:20:17      阅读:646      评论:0      收藏:0      [点我收藏+]

标签:eating   out   https   add   create   erb   应用   step   ase   

网页版文档网址:https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html#install

关于API:

C++ API可以可以应用在性能要求、安全要求更为严格的场景中,Python API的好处在于便于数据的预处理。

C++ API:

1、首先需要创建一个ICudaEngine类型的对象,这个对象是engine。engine的创建有两种方式:

  • 在导入用户model的网络define的时候 生成
  • by reading the serialized engine from the disk. In this case, the performance is better, since the steps of parsing the model and creating intermediate objects are bypassed。

需要创建一个全局的iLogger型对象,

 

步骤0:

IBuilder* builder = createInferBuilder(gLogger);

步骤1:

INetworkDefinition* network = builder->createNetwork();

 

 

定义Network:

在任何一种情况下,您都明确需要告诉 TensorRT 需要哪些张量作为推断的输出。 未标记为输出的张量被认为是可由建造者优化的瞬态值。 输出张量的数量没有限制,但是,将张量标记为输出可能会禁止对张量进行一些优化。

1、自己利用已有的C++ API层层构建这个网络

在步骤1已经create了network,此处可直接拿来使用

构建输入层,输入层是前向第一层的图片输入:

 

auto data = network->addInput(INPUT_BLOB_NAME, dt, Dims3{1, INPUT_H, INPUT_W});

 

加入卷积层:

auto conv1 = network->addConvolution(*data->getOutput(0), 20, DimsHW{5, 5}, weightMap["conv1filter"], weightMap["conv1bias"]);
conv1->setStride(DimsHW{1, 1});

加入pooling层:

auto pool1 = network->addPooling(*conv1->getOutput(0), PoolingType::kMAX, DimsHW{2, 2});
pool1->setStride(DimsHW{2, 2});

加入全连接层和激活层:

auto ip1 = network->addFullyConnected(*pool1->getOutput(0), 500, weightMap["ip1filter"], weightMap["ip1bias"]);
auto relu1 = network->addActivation(*ip1->getOutput(0), ActivationType::kRELU);

加入Softmax层,并得到输出:

auto prob = network->addSoftMax(*relu1->getOutput(0));
prob->getOutput(0)->setName(OUTPUT_BLOB_NAME);

输出结果:

network->markOutput(*prob->getOutput(0));

2、使用Parser导入模型:

ONNX:

auto parser = nvonnxparser::createParser(*network,gLogger);

UFF:

auto parser = createUffParser();

NVCaffe:

ICaffeParser* parser = createCaffeParser();

后面是使用parser导入模型

parser->parse(args);

 

TensorRT Development document

标签:eating   out   https   add   create   erb   应用   step   ase   

原文地址:https://www.cnblogs.com/yanxingang/p/10849371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!