当前位置:   article > 正文

深度学习框架集成平台C++ Guide指南

c++ guide

深度学习框架集成平台C++ Guide指南

这个指南详细地介绍了神经网络C++的API,并介绍了许多不同的方法来处理模型。

提示

所有框架运行时接口都是相同的,因此本指南适用于所有受支持框架(包括TensorFlow、PyTorch、Keras和TorchScript)中的模型。

导入神经网络

最简单的导入方法如下:

#include “neuropod/neuropod.hh”

Neuropod neuropod(PATH_TO_MY_MODEL);

其中PATH_TO_MY_MODEL是使用其中一个打包程序导出的模型的路径。

选项

您还可以在加载模型时提供运行时选项。

要选择运行模型的设备,可以指定“visible_device”选项:

neuropod::RuntimeOptions opts;

// Set the
visible device to the first GPU

opts.visible_device = Device::GPU0;

Neuropod neuropod(PATH_TO_MY_MODEL, opts);

默认为GPU0。如果没有可用的GPU,将尝试退回到CPU。

设置opts.visible_device = Device::CPU将强制模型在CPU上运行。

获取模型的输入和输出

要获取模型的输入和输出,可以执行以下操作:

Neuropod neuropod(PATH_TO_MY_MODEL);

// Both of these
are std::vector<TensorSpec>

const auto &inputs = neuropod.get_inputs();

const auto &outputs = neuropod.get_outputs();

for (const auto &item : inputs)

{

// A `TensorSpec` is a struct with a `name`, `dims` and `type`

std::cout << "Tensor name: " << item.name << std::endl;
  • 1
  • 2
  • 3

}

Tensor张量类型

支持以下Tensor张量类型:

·
float

·
double

·
string

·
int8

·
int16

·
int32

·
int64

·
uint8

·
uint16

·
uint32

·
uint64

提示

PyTorch或TorchScript不支持uint16、uint32和uint64。请参阅PyTorch文档中支持的类型列表。

TorchScript不支持字符串Tensor张量,因此我们将它们表示为字符串列表。因此,TorchScript-Neuropod模型只支持一维字符串“Tensor张量”。请参见此处的用法示例。

创建Tensor张量

提示

有关最适合您的用例的方法的指南,请参见高效张量创建页面。

有很多不同的方法来创建神经网络Tensor张量,但是所有的方法都是从分配器开始的。
要获取加载模型的分配器,可以执行以下操作:

Neuropod neuropod(PATH_TO_MY_MODEL);

auto allocator = neuropod.get_tensor_allocator();

对于未加载模型的场景(例如单元测试&

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/256877
推荐阅读
相关标签
  

闽ICP备14008679号