I am following the tutotial for transfer learning
http://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html
I wish to train on a custom dataset, which cannot be cropped as it will result in relevant data being lost.
224x224 is too small for my use case
Maybe I could resize my data to 480x640
But I would prefer not to alter the images.
When I try to train the model I get an error on size mismatch.
It seems the implementation of the model only allows for images which are 224 x 224.
Is this correct?
Looking at the model
vs the torch versions
There is a single kernel size 7
and single input to AvgPool
Which suggests that the input must be square
32*7=224
In torch
model:add(Convolution(3,64,7,7,2,2,3,3))
in pytorch
self.conv1 = nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3,
bias=False)
If I change the torch model to model:add(Convolution(3,64,15,20,2,2,3,3))
It will at least allow me to train with 480*640 images…although it will not allow me to fine tune a pretrained model
So I basically have 3 questions
- To train on different image sizes can the pretrained models be used?
- Do all images in training have to be the same size (I thought fully convolutional networks would allow any input size …this training works with tensorflow and inception-v3)?
- How do I fine tune a model with images which are not 224*224?