Hi everyone,
I am using the pertained models from torchvision and there are 3 cases: feature extraction, fine-tuning pre-trained model, and optimise it yourself.
First case, to extract feature from images:

set model=resnet18(pretrained=True)
set param.requires_grad = False
and optimise only the Fully Connected layer, the last one.

Second case, to fine-tune pre-trained model:

set model=resnet18(pretrained=True)
set param.requires_grad = True
and optimise Convolutional, Pooling and Fully Connected layers

Third case, to optimise model from scratch :

set model=resnet18(pretrained=False)
set param.requires_grad = True
and optimise Convolutional, Pooling and Fully Connected layers

From my understanding, when you optimise parameters in CNN, you do it for Convolution, Pooling and Fully Connected layers. I can not get the difference between the 2nd and 3d cases. For me in both cases you optimise all layers.
Thank you for your considered time.