Reduces image size by half in height and width by taking the max value in 2x2 blocks.
Computer Vision
MaxPooling2D((2, 2))
Fully connected layer with 128 neurons to learn complex patterns.
Computer Vision
Dense(128, activation='relu')
Output layer with 10 neurons for 10 classes, giving probabilities for each class.
Computer Vision
Dense(10, activation='softmax')
Sample Model
This code builds a small CNN to classify 28x28 grayscale images into 10 classes. It trains on random data for 1 round and shows predicted classes for 5 images.
Computer Vision
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# Build a simple CNN model
model = Sequential([
Conv2D(16, (3, 3), activation='relu', input_shape=(28, 28, 1)),
MaxPooling2D((2, 2)),
Flatten(),
Dense(32, activation='relu'),
Dense(10, activation='softmax')
])
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# Create dummy data: 100 grayscale images 28x28 and labelsimport numpy as np
x_train = np.random.random((100, 28, 28, 1))
y_train = np.random.randint(0, 10, 100)
# Train the model for 1 epoch
history = model.fit(x_train, y_train, epochs=1, batch_size=10, verbose=2)
# Make predictions on first 5 images
predictions = model.predict(x_train[:5])
predicted_classes = predictions.argmax(axis=1)
print('Predicted classes for first 5 images:', predicted_classes)
OutputSuccess
Important Notes
Start with small filters like 3x3 to capture details.
Pooling layers help reduce image size and computation.
Use activation functions like ReLU to add non-linearity.
Summary
CNNs look at images piece by piece to find patterns.
They use layers like Conv2D, Pooling, Flatten, and Dense.
They are great for tasks like image recognition and classification.
Practice
(1/5)
1. What is the main purpose of a Convolutional Neural Network (CNN) in computer vision?
easy
A. To perform text translation
B. To sort numbers in a list
C. To generate random images
D. To detect patterns and features in images
Solution
Step 1: Understand CNN function
CNNs scan images to find important patterns like edges and shapes.
Step 2: Match purpose to options
Only To detect patterns and features in images describes detecting patterns in images, which is CNN's main job.
Final Answer:
To detect patterns and features in images -> Option D
Quick Check:
CNN purpose = detect image patterns [OK]
Hint: CNNs find image features, not unrelated tasks like sorting [OK]
Common Mistakes:
Confusing CNNs with general neural networks
Thinking CNNs generate images
Mixing CNNs with text processing models
2. Which of the following is the correct way to add a 2D convolutional layer in Keras?
easy
A. Dense(units=32, activation='relu')
B. Conv1D(filters=32, kernel_size=3, activation='relu')
C. Conv2D(filters=32, kernel_size=(3,3), activation='relu')
D. MaxPooling2D(pool_size=(2,2))
Solution
Step 1: Identify Conv2D syntax
Conv2D requires filters, kernel_size as a tuple, and activation function.
Step 2: Compare options
Conv2D(filters=32, kernel_size=(3,3), activation='relu') matches Conv2D syntax correctly; others are different layers or wrong dimensions.
Final Answer:
Conv2D(filters=32, kernel_size=(3,3), activation='relu') -> Option C