Topic: CNN (Convolutional Neural Networks) – Part 3: Flattening, Fully Connected Layers, and Final Output
---
1. Flattening the Feature Maps
• After convolution and pooling layers, the resulting feature maps are multi-dimensional tensors.
• Flattening transforms these 3D tensors into 1D vectors to be passed into fully connected (dense) layers.
Example:
This reshapes the tensor from shape
---
2. Fully Connected (Dense) Layers
• These layers are used to perform classification based on the extracted features.
• Each neuron is connected to every neuron in the previous layer.
• They are placed after convolutional and pooling layers.
---
3. Output Layer
• The final layer is typically a fully connected layer with output neurons equal to the number of classes.
• Apply a softmax activation for multi-class classification (e.g., 10 classes for digits 0–9).
---
4. Complete CNN Example (PyTorch)
---
5. Why Fully Connected Layers Are Important
• They combine all learned spatial features into a single feature vector for classification.
• They introduce the final decision boundary between classes.
---
Summary
• Flattening bridges the convolutional part of the network to the fully connected part.
• Fully connected layers transform features into class scores.
• The output layer applies classification logic like softmax or sigmoid depending on the task.
---
Exercise
• Modify the CNN above to classify CIFAR-10 images (3 channels, 32x32) and calculate the total number of parameters in each layer.
---
#CNN #NeuralNetworks #Flattening #FullyConnected #DeepLearning
https://t.me/DataScienceM
---
1. Flattening the Feature Maps
• After convolution and pooling layers, the resulting feature maps are multi-dimensional tensors.
• Flattening transforms these 3D tensors into 1D vectors to be passed into fully connected (dense) layers.
Example:
x = x.view(x.size(0), -1)
This reshapes the tensor from shape
[batch_size, channels, height, width] to [batch_size, features].---
2. Fully Connected (Dense) Layers
• These layers are used to perform classification based on the extracted features.
• Each neuron is connected to every neuron in the previous layer.
• They are placed after convolutional and pooling layers.
---
3. Output Layer
• The final layer is typically a fully connected layer with output neurons equal to the number of classes.
• Apply a softmax activation for multi-class classification (e.g., 10 classes for digits 0–9).
---
4. Complete CNN Example (PyTorch)
import torch.nn as nn
import torch.nn.functional as F
class FullCNN(nn.Module):
def __init__(self):
super(FullCNN, self).__init__()
self.conv1 = nn.Conv2d(1, 32, 3, padding=1)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(32, 64, 3, padding=1)
self.fc1 = nn.Linear(64 * 7 * 7, 128) # assumes input 28x28
self.fc2 = nn.Linear(128, 10)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x))) # 28x28 -> 14x14
x = self.pool(F.relu(self.conv2(x))) # 14x14 -> 7x7
x = x.view(-1, 64 * 7 * 7) # Flatten
x = F.relu(self.fc1(x))
x = self.fc2(x) # Output layer
return x
---
5. Why Fully Connected Layers Are Important
• They combine all learned spatial features into a single feature vector for classification.
• They introduce the final decision boundary between classes.
---
Summary
• Flattening bridges the convolutional part of the network to the fully connected part.
• Fully connected layers transform features into class scores.
• The output layer applies classification logic like softmax or sigmoid depending on the task.
---
Exercise
• Modify the CNN above to classify CIFAR-10 images (3 channels, 32x32) and calculate the total number of parameters in each layer.
---
#CNN #NeuralNetworks #Flattening #FullyConnected #DeepLearning
https://t.me/DataScienceM
❤6