Most of the kernels I’ve come across are defining their own CNN classes which seems to be the right way to go with this competition since image data consists of 2 channels (1 - HH band image, 2 - HV band image) .
My question is this: Would there be a way to hack Resnet in order to allow to train it for this problem. These might sound stupid since I am fairly new to DL but some of the ideas I am came up with are:
Adding a 3rd channel which will be equal for each image. This way the kernels won’t be affected by the 3rd channel while they are being updated and the net might only focus on our original 2 channels.
Redefining the architecture to allow 2 channel images. This seemed really hard to me At least what I’ve understand from complex ResNet paper is that many layer’s depend on the residuals of the previous later. So only updating first convolutional layer to let’s say to (75, 75, 2) won’t do it.
It’s great to see that you are already looking at other datasets that you could apply what you learnt in Lesson 1. For this competition from statoil, you may not be able to use Resnet. The dataset dimensions are only 75x75x2 and Resnet requires a minimum size of 197 on width and height along it being a 3D (RGB) Tensor. So, I would suggest you -
I need to lower the batch size I guess, since there is not enough iterations to see the learning rate go down and rise again. I tried sz but I guess it’s the image size. So far with no tuning ~0.73 on validation.
Right I decreased my batch size but now it’s giving lower accuracy in validation set should I just experiment with different bs - lr combinations ? Thanks
Oh yeah that is small. You’ll have to play around with hyperparams to see what works best… You may find resnet18 works better for such a small dataset, and may need more dropout (which we’ll learn about later).