PyTorch: Transfer Learning and Image Classification
PyTorch: Transfer Learning and Image Classification – PyImageSearch
“Training a Convolutional Neural Network from scratch poses many challenges, most notably the amount of data to train the network and the amount of time it takes for training to take place.
Transfer learning is a technique that allows us to use a model trained for a certain task as a starting point for a machine learning model for a different task.
For example, suppose a model is trained for image classification on the ImageNet dataset. In that case, we can take this model and “re-train” it to recognize classes it was never trained to recognize in the first place!
Imagine, you know how to ride a bicycle and want to ride a motorcycle. Your experience of riding a bicycle — keeping balance, maintaining direction, turning, and braking — will help you learn to ride a motorcycle faster.
This is what transfer learning does in the case of a CNN. Using transfer learning, you can make direct use of a well-trained model by freezing the parameters, changing the output layer, and fine-tuning the weights.
In essence, you can shortcut the entire training procedure and obtain a high accuracy model in a fraction of the time…”