微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 pytorch 的“torch.relu_(input) 未知参数类型”

如何解决来自 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 语句,用于确认一个值是否属于类型列表。如果它不在类型列表中,那么它将运行默认块,抛出未知参数类型错误。

https://github.com/pytorch/pytorch/blob/aacc722aeca3de1aedd35adb41e6f8149bd656cd/torch/csrc/utils/python_arg_parser.cpp#L518-L541

编辑:

如果 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 举报,一经查实,本站将立刻删除。