Results 175 comments of Jiaming Han

@DangChuong-DC You are right. The codebase of ReDet is a rather early version of mmdet, and some ops do not suport running on cpu. I suggest to use corresponding ops...

@jigongbao , try `nms_cpu` instead. https://github.com/csuhan/ReDet/blob/0b9addf3c2734659fd6ffc7824f2e659fde4419c/mmdet/ops/nms/nms_wrapper.py#L48-L51

I think the code could run on colab as long as you follow our [INSTALL.md](https://github.com/csuhan/ReDet/blob/master/INSTALL.md), such as (1) cuda 10.0 (2) torch==1.3.1 (3) mmcv==0.2.14 (4) gcc==4.9

请附上测试代码。我们在实现ReResNet之后曾验证过其等变性。

感谢测试。目前代码里的ReResNet输出的tensor确实不是严格等变的。 对比wide_resnet,其网络的输出添加了pooling和linear: https://github.com/QUVA-Lab/e2cnn/blob/cbe6454d93edd551819809f7131ac580e88cc235/examples/e2wrn.py#L386-L390 ``` b, c, w, h = out.shape out = F.avg_pool2d(out, (w, h)) out = out.view(out.size(0), -1) out = self.linear(out) ``` 我们早期版本里曾尝试在每个ResLayer后添加gpooling: ``` def ennGPool(inplanes): in_type = FIELD_TYPE['regular'](gspace,...

@Martin0Li ,前几天我们对ReResNet的等变性做了重新的验证,以及重新实现了ReResNet V2,参考这个[commit](https://github.com/csuhan/ReDet/commit/da091e1b617ddaa5467aa8f2bc40fa42219b31dc)。 目前ReResNet的等变性已经能够验证,参考: https://github.com/csuhan/ReDet/blob/3eae28f784f771fee8e2305f17a69ac8e84567b0/mmcls/models/backbones/re_resnet.py#L625-L659

> @csuhan 我还有一个疑问,为什么ReResNet比ResNet的参数量少呢?期待您的回复,感谢。 在ReResNet中,大小为[32, 3, 3]的卷积核通过group convolution产生的特征图与常规卷积核[32*8, 3, 3]是一致的;即可以简单的理解为ReResNet中卷积核经过一定的变换,复制了N次(N=8),因此其所需参数较少,仅在运行时进行卷积核变换。

> > > 为什么输入的x的h和w非得是513 801这样的数呢?如果是256 256会怎样啊? > > > > > > 以偶数特征图输入,旋转等变性就会变差,貌似是e2cnn框架的问题。 > > 那您在redet里面用的输入都是奇数么?如果我目前的工作要求必须输入是偶数就没法用e2cnn了么? 下面这张图([https://arxiv.org/pdf/2004.09691.pdf](https://arxiv.org/pdf/2004.09691.pdf))大概可以解释: ![image](https://user-images.githubusercontent.com/17927516/163759598-e8701935-1710-4359-87b3-1d3873aa1f0e.png) 这个问题目前似乎是一个无法调节的矛盾:ResNet等都需要偶数的输入图像(如32*N),且均包含有down sample的模块,但e2cnn这类等变网络在降采样时等变性就会被破坏。 仅针对目标检测问题,相较于来自其他模块的误差(bbox坐标取整, RoI Align线性插值采样),我们认为这里的误差是相对较小的,可接受的。

我们的ReResNet是在ImageNet上预训练过的,ReFPN是随机初始化的。 如果需要使用我们的预训练权重,一般情况下是不会修改ReResNet结构的,可以修改ReFPN或者在原结构后添加新的模块。

what is your full command? dist_train or slurm_train?