yolov7_d2
yolov7_d2 copied to clipboard
encoder_sparseinst.py 中MyAdaptiveAvgPool2d函数疑似代码bug
(https://github.com/jinfagang/yolov7/blob/main/yolov7/modeling/transcoders/encoder_sparseinst.py) 这个文件中的30-33行缩进出问题了,elif isinstance(self.sz, list) or isinstance(self.sz, tuple):应该和elif isinstance(self.sz, list) or isinstance(self.sz, tuple):对齐。
class MyAdaptiveAvgPool2d(nn.Module): def init(self, sz=None): super().init() self.sz = sz
def forward(self, x):
inp_size = x.size()
kernel_width, kernel_height = inp_size[2], inp_size[3]
if self.sz is not None:
if isinstance(self.sz, int):
kernel_width = math.ceil(inp_size[2] / self.sz)
kernel_height = math.ceil(inp_size[3] / self.sz)
elif isinstance(self.sz, list) or isinstance(self.sz, tuple):
assert len(self.sz) == 2
kernel_width = math.ceil(inp_size[2] / self.sz[0])
kernel_height = math.ceil(inp_size[3] / self.sz[1])
if torch.is_tensor(kernel_width):
kernel_width = kernel_width.item()
kernel_height = kernel_height.item()
return F.avg_pool2d(
input=x, ceil_mode=False, kernel_size=(kernel_width, kernel_height)
)
@LuoxiaofeiFly 你的确发现了一个BUG,可以给主仓库提交一个PR修正以下这个地方么?看起来似乎不影响运行,但在onnx export的时候恐容易崩