For this particular project, I used TensorFlow==2.6.4, EfficientNetB0 pre-trained model for
Transfer_learning freezing the base_model.
Regarding Fine-tune_model, I used a separate code block to explain the process.
The model predicts label_name by providing image_path from test_set.
What is EfficientNet?
It was introduced by GoogleAI in 2019. It is a CNN architecture and scaling method
that uniformly scales all dimensions of CNN such as depth, width, and resolution using
a compound co-efficient.
It provides a way to scale up CNNs in a more structured manner while also balancing all dimensions of the network at once, leading to a significant improvement in both accuracy and efficiency.
EfficientNet has 8 models from b0 to b7. Each model has 4 components
given below-
- Stem layer
- Final Layer
- Sub-blocks (Each block has sub-blocks.)
- Modules (Each sub-blocks has modules.)
Layer details:
Input Layer -> Rescaling -> Normalization -> Zero Padding -> Conv2D -> Batch Normalization -> Activation
Models' details:
| Base Model | Resolution (Input shapes) |
|---|---|
EfficientNetB0 |
224 |
EfficientNetB1 |
240 |
EfficientNetB2 |
260 |
EfficientNetB3 |
300 |
EfficientNetB4 |
380 |
EfficientNetB5 |
456 |
EfficientNetB6 |
528 |
EfficientNetB7 |
600 |
- Dataset link: https://lnkd.in/eVyxTqrX