如何解决来自 pytorch 的“torch.relu_(input) 未知参数类型”
我正在尝试在 GPU 上的 Google Colab 中运行此 3D pose estimation repo,但在完成所有步骤并放入我自己的左/右凸轮视频后,我在 Colab 中收到此错误:
infering thread started
1 1
: cannot connect to X server
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py",line 926,in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py",line 870,in run
self._target(*self._args,**self._kwargs)
File "/content/Stereo-3D-pose-estimation/poseinferscheduler.py",line 59,in infer_pose_loop
l_pose_t = infer_fast(self.net,l_img,height,self.stride,self.upsample_ratio,self.cpu)
File "/content/Stereo-3D-pose-estimation/pose3dmodules.py",line 47,in infer_fast
stages_output = net(tensor_img)
File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py",line 1051,in _call_impl
return forward_call(*input,**kwargs)
File "/content/Stereo-3D-pose-estimation/models/with_mobilenet.py",line 115,in forward
backbone_features = self.model(x)
File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py",**kwargs)
File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/container.py",line 139,in forward
input = module(input)
File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py",**kwargs)
File "/usr/local/lib/python3.7/dist-packages/torch/nn/modules/activation.py",line 102,in forward
return F.relu(input,inplace=self.inplace)
File "/usr/local/lib/python3.7/dist-packages/torch/nn/functional.py",line 1296,in relu
result = torch.relu_(input)
RuntimeError: unkNown parameter type
我有点困惑为什么会看到它,我已经安装了所有必要的先决条件;也无法解释它的意思。
解决方法
由于回溯发生在 pytorch 库中,所以我检查了 pytorch github 上的代码。
该错误的含义是您正在将 torch.relu_ 中的就地激活函数调用到某个名为 input 的对象。但是,发生的情况是 Torch 后端无法识别输入的类型,这就是为什么会出现运行时错误。
因此,我建议打印出输入并运行
type(input)
找出对象输入代表什么以及该变量是什么。作为进一步的参考,这是 Pytorch 在后端运行的特定脚本,导致它抛出未知的参数类型错误。乍一看,它似乎是一个 switch 语句,用于确认一个值是否属于类型列表。如果它不在类型列表中,那么它将运行默认块,抛出未知参数类型错误。
编辑:
如果 type(input) 返回一个 torch.tensor 那么它可能是你使用的 python 版本的问题。我知道你说你有先决条件,但我认为如果你有 python 3.6,也许但最好是 python 3.5 或 3.7,仔细检查一下会很好。这些是适用于您刚刚发送给我的存储库的 Python 版本。
您可以通过键入在合作中找到 python 版本
!python --version
在其中一个单元格上。确保它返回您正在运行的软件支持的正确版本。这个错误可能来自这样一个事实,即 python 本身在其后端表达了这个错误,而不是 Torch。
我发现这个 stackoverflow 很有用,因为它显示了一些代码如何无法识别 Python 中的内置类型字典:"TypeError: Unknown parameter type: <class 'dict_values'>" 解决方案是检查python版本。
萨萨克
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。