首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将GpuMat复制到CUDA张量

将GpuMat复制到CUDA张量
EN

Stack Overflow用户
提问于 2018-12-04 15:05:37
回答 1查看 1.4K关注 0票数 1

我试图在C++中运行模型推理。

我成功地用torch.jit.trace跟踪了Python中的模型。

我能够在C++中使用torch::jit::load()加载模型。

我能够在cpu和gpu上进行推理,但是起点总是torch::from_blob方法,它似乎正在创建cpu端张量。

为了提高效率,我想直接向CUDA张量转换/复制cv::cuda::GpuMat。为了寻找简单的例子,我一直在测试文档中挖掘,但却找不到。

问:如何从cv:: CUDA ::GpuMat创建cuda张量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-04 16:07:23

下面是一个示例:

代码语言:javascript
复制
//define the deleter ...
void deleter(void* arg) {};

//your convert function 

cuda::GpuMat gImage;

//build or load your image here ...

std::vector<int64_t> sizes = {1, static_cast<int64_t>(gImage.channels()),
                          static_cast<int64_t>(gImage.rows),
                          static_cast<int64_t>(gImage.cols)};

long long step = gImage.step / sizeof(float);

std::vector<int64_t> strides = {1, 1, step, static_cast<int64_t>(gImage.channels())};

auto tensor_image = torch::from_blob(gImage.data, sizes, strides, deleter,  torch::kCUDA);
std::cout << "output tensor image : " << tensor_image << std::endl;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53615833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档