gpt4 book ai didi

c++ - 在不使用 "from_blob(...)..."的情况下从 C/C++ 数组创建一个 torch::Tensor

转载 作者:行者123 更新时间:2023-12-01 14:11:40 26 4
gpt4 key购买 nike

使用 C++ libtorch 前端 Pytorch
我想创建一个 torch::Tensor来自 C++ double[]大批。来自遗留的 C/C++ API。
我在 docs 中找不到有关该主题的简单文档也不是在论坛。
就像是:

double array[5] = {1, 2, 3, 4, 5};
auto tharray = torch::Tensor(array, 5, torch::Device(torch::kCUDA));
我发现的唯一方法是使用 torch::from_blob但那样我就不得不 clone()并使用 to(device)如果我想将它与 CUDA 一起使用。
double array[] = { 1, 2, 3, 4, 5};
auto options = torch::TensorOptions().dtype(torch::kFloat64);
torch::Tensor tharray = torch::from_blob(array, {5}, options);
有没有更清洁的方法呢?

最佳答案

您可以在此处阅读有关张量创建的更多信息:https://pytorch.org/cppdocs/notes/tensor_creation.html

我不知道有什么方法可以在不使用 from_blob 的情况下从数组创建张量但你可以使用 TensorOptions控制关于张量的各种事情,包括它的设备。

根据您的示例,您可以按如下方式在 GPU 上创建张量:

double array[] = { 1, 2, 3, 4, 5};
auto options = torch::TensorOptions().dtype(torch::kFloat64).device(torch::kCUDA, 1);
torch::Tensor tharray = torch::from_blob(array, {5}, options);

关于c++ - 在不使用 "from_blob(...)..."的情况下从 C/C++ 数组创建一个 torch::Tensor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58631466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com