问题标签 [libtorch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2112 浏览

c++ - 如何用 C++ 数组填充 torch::tensor?

这是非常基本的:我通常使用 Eigen3 进行数学运算,但需要使用 libtorch 进行网络前向传递。现在我想torch::tensor用我的 Eigen3 (或纯 C++ array)中的数据填充,但没有for循环。我怎样才能做到这一点?

这是带有循环的解决方案:

这目前工作正常,但N可能会变得非常大,我只是在寻找一种方法来直接torch::tensor使用以前使用的 C++设置我的基础数据array

0 投票
1 回答
6025 浏览

pytorch - “加载共享库时出错:libnvinfer.so.7:无法打开共享对象文件:没有这样的文件或目录”运行 TRTorch 示例时

我正在尝试使用 TRTorch 引擎编译我的 pytorch 模型。我已经根据这个链接安装了 TRTorch。
运行示例代码时(使用此链接中的以下命令)出现给定错误:

sudo bazel run //cpp/trtorchexec -- $(realpath /home/TRTorch/tests/modules/alexnet_scripted.jit.pt) "(1,3,227,227)"

加载共享库时出错:libnvinfer.so.7:无法打开共享对象文件:没有这样的文件或目录

此外,LD_LIBRARY_PATH设置正确。

导出 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/TensorRT/TensorRT-7.0.0.11/lib

更多信息:

TRTorch:最新版本(python 包和二进制)
TensorRT:7.0.0.11
Pytorch:1.5.1
CUDA:10.2
Python:3.6

0 投票
1 回答
445 浏览

c++ - 如何从 libtorch 中的 Tensor 取回图像?

我正在尝试从我之前创建的张量中取回图像并将其可视化,但是,生成的图像似乎失真/垃圾。这就是我将 aCV_8UC3转换为相应的方法at::Tensor

这就是我将其转换回图像的方式:

这是原始图像的样子:

在此处输入图像描述

这就是我转换后得到的:

在此处输入图像描述

现在,如果我在创建张量期间使用at::kInt而不是:kByte

我不再得到扭曲的图像!但是,网络输出将关闭,这意味着输入出现问题!

这里有什么问题,我应该怎么做?

0 投票
2 回答
357 浏览

c++ - 在 Torch C++ 中创建 BoolTensor 掩码

我正在尝试为 C++ 类型的 Torch 创建一个掩码BoolTensorn维度中的第一个元素one需要是False,其余的需要是True

这是我的尝试,但我不知道这是否正确(大小是元素的数量):

0 投票
1 回答
504 浏览

c++ - 如何使用protobuf序列化元组(std :: string,torch :: Tensor)的libtorch向量?

我应该如何定义 ProtoBuf 模式以便我可以序列化这个形状向量?

我能找到的只是简单的琐碎示例。我不知道应该如何在 ProtoBuf 模式中定义torch::Tensoror !tuple

0 投票
1 回答
572 浏览

pytorch - LibTorch 中的固定内存

我可能遗漏了一些非常基本的东西,但我在文档或网上找不到任何解释

我正在尝试将 GPU 复制到at::TensorCPU 上的固定张量,但是一旦我复制它,CPU 张量就不再固定了。我假设它只是创建 GPU 张量的新副本并分配它,但如果是这种情况,你如何复制到预先分配的固定内存?

我的测试代码:

输出是

这也发生在torch::而不是at::

使用从源代码编译的 LibTorch 1.5.0 在 Ubuntu 16.04 上测试

0 投票
1 回答
158 浏览

c++ - 为什么在 Torch C++ API 中就地张量方法是 const 的?

我在 PyTorch C++ 前端看到很多就地张量操作,例如mul_和const:div_

这似乎很奇怪,因为就地操作应该修改张量数据,对吧?有谁知道使它们成为常量的原因是什么?

我在 github 上找到了一些讨论,但看起来标题与下面写的内容相矛盾:

'const Tensor' 不提供 const 安全性......因此,这些方法应该是非常量的

0 投票
2 回答
2064 浏览

c++ - 如何转换 std::vector> 到火炬::张量?

我有一个std::vector<std::vector<double>>我想将它转换成torch::Tensorlibtorch 的地方。但是,似乎 ,torch::tensor()torch::from_blob(), 不能用于此目的!

我尝试使用c10::ArrayRef然后使用它来将数据转换为 a torch::Tensorc10::ArrayRef<std::vector<std::vector<double>>> res(myvecs)但这似乎也没用,因为我似乎找不到将其转换为torch::Tensor.

我应该如何在 libtorch 中进行这种转换?除了例如,我还有什么其他选择:

0 投票
1 回答
357 浏览

c++ - 如何在libtorch中将形状(n,k)的张量与形状(k)的张量堆叠?

torch::stack接受 ac10::TensorList并且在给出相同形状的张量时工作得很好。但是,当您尝试发送先前torch::stack编辑的张量的输出时,它会失败并导致内存访问冲突。

更具体地说,假设我们有 3 个形状为 4 的张量,例如:

第一轮堆叠是微不足道的:

但是,尝试这样做:

将失败。我希望获得与np.vstackPython 中相同的行为,这是允许并有效的。我该怎么办?

0 投票
1 回答
100 浏览

pytorch - 与从文件中读取的相同张量进行比较时,为什么 C++ PyTorch API 中的“is_same”会失败?

为什么torch::Tensor::is_same以下断言失败?使用 C++ PyTorch API 将张量写入文件,然后再次读入另一个张量,并is_same比较两个张量:

这导致:

使用

  • python-pytorch,Arch Linux 上的版本 1.6.0-2
  • g++ (GCC) 10.1.0