Introduction
CNNs are specialized for processing grid-like data such as images.
Conv2D Layer
from tensorflow.keras import layers
model = keras.Sequential([
layers.Conv2D(32, (3, 3), activation="relu", input_shape=(28, 28, 1)),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation="relu"),
layers.MaxPooling2D((2, 2)),
layers.Flatten(),
layers.Dense(64, activation="relu"),
layers.Dense(10, activation="softmax")
])
Data Augmentation
from tensorflow.keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True,
validation_split=0.2
)
train_generator = datagen.flow_from_directory(
"data/train",
target_size=(150, 150),
batch_size=32
)
Practice Problems
- Build CNN for image classification
- Add dropout layers
- Use pre-trained models
- Implement data augmentation
- Fine-tune CNN for custom data