Hi everybody,
I’d like to discuss the correctness of the ResNet and ResNetV2 implementations, recently
I noticed a few flaws in the Keras applications implementation, starting with this. Now I want to discuss the identity mappings, it seems like they make a huge difference, according to the ResnetV2 paper.
The way ResNetV1 is implemented, the skip connections are not Identity at all, there are BN and activations in the way, which defeats the idea in which ResNets were designed.
ResNetV2 tries to correct those issues, but I still see some MaxPooling layers in the skip connections.
I have compared my results training a binary classifier with ResNetV1, ResNetV2 and a modified ResNetV1 with all identity mappings. The modified ResNetV1 is providing me the best results. My dataset contains images with a high number of channels, which impedes the usage of Imagenet weights.
See results here (scroll image to the right to see ResnetV2): ResNet_test/networks_precision_recall.png at main · ririya/ResNet_test · GitHub