Though CNNs can be easily trained given enough computing power and labeled data, training a high-quality CNN takes lots of iterations and patience. It is not always easy to optimize a huge number of parameters, often in the range of millions, while training a CNN from scratch. Moreover, a CNN is especially suited to problems with large datasets. Often, you are faced with a problem that has a smaller dataset and training a CNN on such datasets may lead to overfitting on training data. Fine-tuning a CNN is one such technique that aims to address this pitfall of CNNs. The fine-tuning of a CNN implies that you never train the CNN from scratch. Instead, you start from a previously trained CNN model and finely adapt and change the model weights to better suit your application context. This strategy has multiple advantages:
- It exploits the large number of pre-trained...