diff --git a/mmdet/ops/dcn/deform_pool.py b/mmdet/ops/dcn/deform_pool.py index 99a4a361897..a3eee759803 100644 --- a/mmdet/ops/dcn/deform_pool.py +++ b/mmdet/ops/dcn/deform_pool.py @@ -148,6 +148,10 @@ def __init__(self, def forward(self, data, rois): assert data.size(1) == self.out_channels + n = rois.shape[0] + if n == 0: + return data.new_empty(n, self.out_channels, self.out_size[0], + self.out_size[1]) if self.no_trans: offset = data.new_empty(0) return deform_roi_pooling(data, rois, offset, self.spatial_scale, @@ -156,7 +160,6 @@ def forward(self, data, rois): self.part_size, self.sample_per_part, self.trans_std) else: - n = rois.shape[0] offset = data.new_empty(0) x = deform_roi_pooling(data, rois, offset, self.spatial_scale, self.out_size, self.out_channels, True, @@ -228,6 +231,10 @@ def __init__(self, def forward(self, data, rois): assert data.size(1) == self.out_channels + n = rois.shape[0] + if n == 0: + return data.new_empty(n, self.out_channels, self.out_size[0], + self.out_size[1]) if self.no_trans: offset = data.new_empty(0) return deform_roi_pooling(data, rois, offset, self.spatial_scale, @@ -236,7 +243,6 @@ def forward(self, data, rois): self.part_size, self.sample_per_part, self.trans_std) else: - n = rois.shape[0] offset = data.new_empty(0) x = deform_roi_pooling(data, rois, offset, self.spatial_scale, self.out_size, self.out_channels, True,