问题标签 [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.
c++ - 使用 Libtorch 1.5 和 C++ 中的优化器选项更新学习率
随着 PyTorch 的 C++ API 1.5 稳定版的发布,一些对象接口发生了一些变化。比如现在
将无法工作(此处使用的优化器是 Adam),因为learning_rate
已更改为lr
(请参阅https://github.com/pytorch/pytorch/releases),但优化器不再具有选项(no member named 'options' in 'torch::optim::Adam'
)。所以我的问题是:一个人怎么跑
或更新学习率
与新版本?任何帮助将不胜感激!谢谢
c++ - 在 Raspberry PI 上使用 libtorch 构建程序时的链接问题
我正在使用 libtorch 和 OpenCV 编写一个 C++ 程序。
这是我的输出CMakeLists.txt
,带有库版本:
你可以看到手电筒需要libc10.so
工作。
当我打电话时make
,一切都很好,直到在链接期间发生这种情况:
当我file
对这个文件执行命令时,我看到它是为 x86-64 架构而不是 ARM 编译的。这是file
命令的输出 on/usr/lib/libc10.so
和 on/usr/lib/libtorch.so.3.0.0
进行比较:
我怎样才能有一个工作的 libc10.so 文件?
编辑:
我开始在我的树莓派上重新构建 PyTorch,所以它也会重新构建 libtorch。这需要几个小时,并在夜间因链接问题而崩溃:
但是,构建输出了一个libc10.so
具有以下签名的文件!
我在文件夹中替换它/usr/lib
并尝试构建我的项目:它比以前更进一步,并因另一个文件格式问题而崩溃。这证明如果我设法完全重建 libtorch,我应该能够构建我的项目!
有人可以帮我解决新的链接问题吗?
编辑#2:
我发现这个问题有同样的问题。尝试给定的解决方案,如果可以编写完整的教程,请返回这里。
python - C++ 模块中不存在 PyTorch 训练属性
我有一个使用 跟踪和保存的脚本torch.jit.save
,当我使用以下命令在 python 中加载它时:
我得到了预期的输出:
但是,当我使用 libtorch 和以下代码加载相同的文件时:
输出是
进入该is_training()
函数,它会查找该training
属性,但它不存在,因此默认为 true
使用此模块有效,我可以调用它forward
并处理数据,但我需要能够将训练模式设置为false
有什么想法吗?追踪时有什么需要做的吗?
我在带有 CUDA 10.2 的 Ubuntu 16.04 上使用 PyTorch 1.5.0
libtorch - Torch C++ (libtorch) 中是否提供概率分布?
我正在尝试移植一个 Q 网络,它使用概率分布采样(Normal
Python 中的类及其rsample
函数)。这些在 PyTorch C++ 中可用吗?
c++ - Raspberry 上的 Libtorch 无法加载 pt 文件但在 ubuntu 上工作
我正在尝试在 Raspberry PI 上使用 libtorch 构建一个 C++ 程序。该程序在 Ubuntu 上运行,但在 Raspberry 上构建时出现以下错误:
这是崩溃的代码:
声明network
为私有torch::jit::script::Module network
我使用来自 github 的 pyTorch 在版本 '1.0.0a0+8322165' 中为 Raspberry (ARM) 构建 libtorch
c++ - dim() 在 Libtorch C++ 中调用未定义的张量(在 ../c10/core/UndefinedTensorImpl.cpp:24 处变暗)
执行图像时出现错误(如下所示)。我使用 Python 来跟踪 Yolo 模型,而 C++ 环境中的跟踪文件只给出了一张图像的错误。我猜这个错误可能是由于图像没有任何对象检测。
c++ - gtest 和 libtorch 未定义对 `testing::internal:: 的引用
我正在尝试将 gtest 与 libtorch 一起使用。目前,我有一个基本的测试程序:
然后我有一个主要制作,我在第三方文件夹中获取火炬,如下所示:
然后我的测试看起来像:
当我在发布版本中编译时它很好。如果我的链接目录中不包含“${TORCH_LIBRARIES}”也可以。但是,当我链接到 Torch 并在调试下进行测试时,我得到以下信息:
我认为这是因为torch 利用了测试并在发布版本下编译。我在torch下的lib文件夹中手动找到了一个gtest.so并删除了它,看看它是否可以解决它,但它没有。
c++ - CUDA 10.0 和 10.2 之间的 Pytorch 推理时间差异
我们有一个使用 LibTorch 1.5.0 的工作库,使用 CUDA 10.0 构建,可以按预期运行。
出于各种与 PyTorch 无关的原因,我们正在努力升级到 CUDA 10.2。我们注意到,当我们在新编译的 LibTorch 上运行 LibTorch 推理时(编译时完全相同,除了更改为 CUDA 10.2),运行时间大约慢了 20 倍。我们还使用预编译的二进制文件对其进行了检查。
这是在 3 台不同的机器上使用 3 个不同的 GPU(Tesla T4、GTX980 和 P1000)进行测试的,并且在 CUDA 10.2(Windows 10 和 Ubuntu 16.04 上)上都给出了一致的 ~20 倍慢,所有这些都使用最新的驱动程序和 3 个不同的火炬脚本(相同架构)
我已将代码简化为极少,无需 Torch 以外的外部依赖项
当使用使用 CUDA 10.0 编译的 Torch 编译它时,我们得到一个运行时18 ms
,当我们使用使用 CUDA 10.2 编译的 Torch 运行它时,我们得到一个运行时430 ms
对此有什么想法吗?
这个问题也发布在PyTorch 论坛上。
GitHub 上的问题
更新
我使用两个 CUDA 分析了这个小程序
似乎两者都使用非常不同的内核
conv2d_grouped_direct_kernel
在我的 P1000 上,96.5% 的 10.2 计算需要大约 60-100 毫秒
10.0 运行中的顶级内核在哪里
所以很容易看出时差是从哪里来的。现在的问题是,为什么。
c++ - Pytorch C++ RuntimeError:设备类型为 cuda 的预期对象,但在调用 _th_index_select 时获得了参数 #1 'self' 的设备类型 cpu
我正在使用torch::Embedding
Ubuntu 18.04LTS PyTorch C++(1.5.1,CUDA 10.1)上的预训练词向量(glove.300d)模块计算单词相似度。我相信我已经将所有可能的东西都移到了 GPU 上,但是当我执行它时,它仍然显示(问题末尾的完整错误日志):
我在main.cpp中检查了我的模型初始化方法,如果我只做初始化就可以了。
这就是我在Similarity.h中定义SimilarityModel的方式:
同时我已经在 Similarity.cpp 的SimilarityModel函数中嵌入了初始化:
和Similarity.cpp中的转发功能:
至于forward()中的中间变量也已经放到了 GPU 上。但是,我完全不知道 CPU 中还剩下哪一个,而且错误日志也没有多大帮助。我已经尝试了设备类型 cuda 的预期对象中的方法,但是在调用 _th_index_select时得到了设备类型 cpu 的参数 #1 'self' SimilarityModel().to(device)
,但这不起作用。我仍然很难阅读此错误日志,并且想要一些有关如何调试此类问题的说明。
错误日志: