Introduction
Use pre-trained models to leverage learned features for new tasks.
Using Pre-trained Models
from tensorflow.keras.applications import VGG16
base_model = VGG16(weights="imagenet", include_top=False, input_shape=(224, 224, 3))
base_model.trainable = False # Freeze base
Adding Custom Layers
from tensorflow.keras import layers, models
model = models.Sequential([
base_model,
layers.GlobalAveragePooling2D(),
layers.Dense(256, activation="relu"),
layers.Dropout(0.5),
layers.Dense(10, activation="softmax")
])
Fine-tuning
# Unfreeze last few layers
base_model.trainable = True
for layer in base_model.layers[:-4]:
layer.trainable = False
model.compile(optimizer=keras.optimizers.Adam(1e-5), loss="categorical_crossentropy")
Practice Problems
- Use VGG/ResNet for image classification
- Add custom classification head
- Fine-tune unfrozen layers
- Compare frozen vs fine-tuned
- Apply to custom dataset