为啥resnet34 比vgg16 还慢

遇到了相同问题,使用ResNet50的Faster R-CNN无论是训练(280秒/Epoch)和测试(165毫秒/image)都比VGG-16的训练(165秒/Epoch)和测试(115毫秒/image)要慢。我使用的是MXNet(0.10.0)的Faster R-CNN(MXNet 0.9.5)实现。 但是我认为这和框架无关,因为基于caffe的py-faster-rcnn下有一个issue(#524)也是提到这个问题。不太同意 @李宜城 的回答,因为实现代码中VGG和ResNet在RPN部分是一样的。
经 @李宜城 指出,subnetwork不是RPN,这个我错了,我确实没搞懂。不过依然不理解为什么速度慢,使用VGG16的Faster R-CNN是把RPN和RoIPooling插入到卷积层和全连接层之间,而使用ResNet的Faster R-CNN是把RPN和RoIPooling插入到卷积层中间。这样做虽然有点不一样但会增加运算量么?

■网友
jcjohnson/cnn-benchmarks 里是 使用model做image classification的速度和accuracy,用faster-RCNN来做object detection的时候,测试的时间大部分在于subnet的时间,你可以查看一下subnet的参数。

■网友
【为啥resnet34 比vgg16 还慢】 事实上 ,去除了跳层连接也可以训练很深的网络:
CVPR2018抢先看,DiracNets:无需跳层连接,训练更深神经网络,结构参数化与Dirac参数化的ResNet


    推荐阅读