赞
踩
由于系统升级,新安装了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的源代码,修改如下,
-
- def forward(self, input: Tensor) -> Tensor:
- #return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners,
- # recompute_scale_factor=self.recompute_scale_factor)
- return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)
虽然临时也算解决了问题,但由于是改变anconda系统级的源码,所以并不是一个好的办法。
最好的办法还是重新训练一下模型,此时模型中已经包含的recomputer_scale_factor这样的函数,然后再调用就不会有这个问题了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。