当前位置:   article > 正文

Yolov5由升级引起的报错:AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘_("'{}' object has no attribute '{}'".format( attri

("'{}' object has no attribute '{}'".format( attributeerror: 'upsample' obje

由于系统升级,新安装了pytorch-cuda=11.7 + Python=3.9.16,原来的Yolov5跑动时发现报错,

AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'

大致内容如下,

  File "D:\Anaconda3\envs\torch\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "D:\Anaconda3\envs\torch\lib\site-packages\torch\nn\modules\upsampling.py", line 157, in forward
    recompute_scale_factor=self.recompute_scale_factor)
  File "D:\Anaconda3\envs\torch\lib\site-packages\torch\nn\modules\module.py", line 1614, in __getattr__
    raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'

作为一个临时解决方案,找到upsampling的源代码,修改如下,

  1. def forward(self, input: Tensor) -> Tensor:
  2. #return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners,
  3. # recompute_scale_factor=self.recompute_scale_factor)
  4. return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)

虽然临时也算解决了问题,但由于是改变anconda系统级的源码,所以并不是一个好的办法。

最好的办法还是重新训练一下模型,此时模型中已经包含的recomputer_scale_factor这样的函数,然后再调用就不会有这个问题了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/888906
推荐阅读
相关标签
  

闽ICP备14008679号