Machine Learning
39.4K subscribers
4.36K photos
40 videos
50 files
1.42K links
Real Machine Learning — simple, practical, and built on experience.
Learn step by step with clear explanations and working code.

Admin: @HusseinSheikho || @Hussein_Sheikho
Download Telegram
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:

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