if self.radix == 0:
out = self.bn2(out)
if self.dropblock_prob > 0.0:
out = self.dropblock2(out)
Meanwhile, in the Gluon version of Bottleneck, self.dropblock2 is used regardless of self.use_splat being true or not. Just wanted to point this out, and inquire if the drop in accuracy for the PyTorch implementation compared to Gluon implementation you mentioned could be attributed to this inconsistency.
Hello! In the Torch version of
Bottleneck
, it appears thatself.dropblock2
is never used.self.dropblock2
is initialized in lines 52-56 ifradix == 1
: https://github.com/zhanghang1989/ResNeSt/blob/master/resnest/torch/resnet.py#L52-L56But it is only called in lines 107-110 if
radix == 0
: https://github.com/zhanghang1989/ResNeSt/blob/master/resnest/torch/resnet.py#L107-110Meanwhile, in the Gluon version of
Bottleneck
,self.dropblock2
is used regardless ofself.use_splat
being true or not. Just wanted to point this out, and inquire if the drop in accuracy for the PyTorch implementation compared to Gluon implementation you mentioned could be attributed to this inconsistency.