AttributeError: Can't get attribute 'SPPF' on <module 'models.common' from 'E:\\研究生\\研二上\\pytorch\\YOLO\\yolov5-5.0\\models\\common.py'>
时间: 2023-10-09 08:05:14 浏览: 172
AttributeError: module 'tensorflow.compat.v1' has no attribute '
这个错误是由于在模块'models.common'中找不到属性'SPPF'导致的。根据引用和引用的内容,解决这个问题的方法是在'common.py'文件中重新加入缺失的代码段。具体做法是在文件顶端添加以下语句来调用所需的属性:
import warnings
class SPPF(nn.Module):
# Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocher
def __init__(self, c1, c2, k=5):
# equivalent to SPP(k=(5, 9, 13))
super().__init__()
c_ = c1 // 2 # hidden channels
self.cv1 = Conv(c1, c_, 1, 1)
self.cv2 = Conv(c_ * 4, c2, 1, 1)
self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2)
def forward(self, x):
x = self.cv1(x)
with warnings.catch_warnings():
warnings.simplefilter('ignore') # suppress torch 1.9.0 max_pool2d() warning
y1 = self.m(x)
y2 = self.m(y1)
return self.cv2(torch.cat([x, y1, y2, self.m(y2)], 1))
请按照上述方法进行操作,即可解决问题。
阅读全文