mmdetection中:RuntimeError:input is smaller than kernel(shape_check at mmdet/ops/dcn/src/deform_conv)

在使用mmdetection v1.0.0时遇到RuntimeError,原因是输入尺寸小于卷积核尺寸。问题出现在第7311张图片,尽管已应用padding=1。解决方案包括在送入可变形卷积前使用ZeroPad2d或pad()函数预先填充,避免源码中的大小检查错误。注意,ZeroPad2d会改变模型结构,而pad()仅影响计算,不影响模型。修改后能正常在test-dev集上运行。

问题描述

RuntimeError:input is smaller than kernel(shape_check at mmdet/ops/dcn/src/deform_conv)
在这里插入图片描述
前提:在使用mmdetection(v 1.0.0的版本)中的可变形卷积操作时,遇到了这个问题。具体是在MSCOCO test-dev集下跑测试,如果在验证集跑测试的没有出现这个问题。

出现这个问题是在test-dev集的第7311张图片上,我们把图片的大小打出来:
在这里插入图片描述
有一张图片的size出现了2,torch.Size([1,256,2,11])
但是可变形卷积是3。这里就出现了上面出现的问题了。

但是在使用的可变形卷积中,已经用了padding=1的操作,按理说不应会出现问题。

所以只能查看源码,看是不是判断出了问题,或者padding=1没有用上?
在官方github的mmcv库中的mmcv/mmcv/ops/csrc/pytorch/deform_conv_cuda.cu下找到了deform_conv_cuda.cu

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值