A complete collection of 18 PyTorch notebooks converted from Keras, covering fundamental to advanced deep learning topics.
# Install PyTorch (CPU)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
# Or GPU version
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# Install other dependencies
pip install numpy matplotlib scikit-learnjupyter notebook PyTorch/01_Basics/00_fashion_mnist_basic_cnn.ipynbLocation: PyTorch/01_Basics/
-
00_fashion_mnist_basic_cnn.ipynb - Image Classification Fundamentals
- Learn: CNN architecture, model.fit() equivalent, training loops
- Dataset: Fashion MNIST (28x28 images, 10 classes)
- Model: Simple CNN (Flatten → Dense → Dense)
- Duration: ~5-10 minutes
-
01_learn_sine_regression.ipynb - Regression & Training Dynamics
- Learn: Regression with neural networks, train/val split
- Dataset: Synthetic sine wave
- Model: Multi-layer perceptron
- Duration: ~5 minutes
-
02_boston_house_price_regression.ipynb - Real-world Regression
- Learn: Feature scaling, regression metrics (MSE, RMSE, MAE)
- Dataset: Boston housing dataset
- Model: Dense neural network
- Duration: ~5 minutes
Location: PyTorch/02_Image_Classification/
- 00_cifar10_classification.ipynb - Binary Image Classification
- Learn: Binary classification, CNN architecture, data augmentation
- Dataset: CIFAR-10 (cats vs dogs)
- Model: Deeper CNN with regularization
- Duration: ~10 minutes
Location: PyTorch/03_Advanced_CNN/
- 00_densenet_architecture.ipynb - Modern CNN Architecture
- Learn: DenseNet, skip connections, pre-trained models
- Architecture: DenseNet121 from ImageNet
- Task: Feature extraction and fine-tuning
- Duration: ~10 minutes
Location: PyTorch/04_Regularization/
-
00_cifar10_regularization.ipynb - Preventing Overfitting
- Learn: L2 regularization, Dropout, Batch Normalization
- Techniques: weight_decay, Dropout layers, augmentation
- Dataset: CIFAR-10
- Duration: ~10 minutes
-
01_imdb_overfit_underfit.ipynb - Model Capacity Analysis
- Learn: Overfitting vs underfitting, model complexity
- Models: Simple, Medium, Complex (3 variants)
- Analysis: Train/val curve comparison
- Duration: ~5 minutes
Location: PyTorch/05_Transfer_Learning/
-
00_imagenet_transfer_learning.ipynb - Fine-tuning Pre-trained Models
- Learn: Transfer learning, layer freezing, selective optimization
- Base Model: ResNet50 (ImageNet pre-trained)
- Strategy: Freeze backbone, retrain classifier
- Duration: ~15 minutes
-
01_visualize_heat_maps.ipynb - Model Interpretability
- Learn: Feature visualization, Grad-CAM, attention maps
- Techniques: Hook-based feature extraction, gradient visualization
- Output: Class activation maps
- Duration: ~10 minutes
Location: PyTorch/06_Image_Segmentation/
All use the same U-Net architecture with different dataset themes:
- 00_cell_tissue_segmentation.ipynb - Cell segmentation
- 01_mitosis_detection_brightfield.ipynb - Brightfield microscopy
- 02_mitosis_detection_phase_contrast.ipynb - Phase contrast microscopy
- 03_mitosis_xenopus_detection.ipynb - Xenopus embryo segmentation
Features:
- Learn: U-Net encoder-decoder, skip connections, upsampling
- Architecture: Fully convolutional network with dense connections
- Loss: BCEWithLogits for binary segmentation
- Duration: ~10 minutes each
Location: PyTorch/07_Time_Series/
- 00_time_series_training.ipynb - LSTM Fundamentals
- 01_time_series_prediction.ipynb - RNN for Sequences
Features:
- Learn: LSTM, GRU, sequence-to-sequence, temporal patterns
- Architecture: Multi-layer LSTM
- Dataset: Synthetic time series signals
- Task: Next-step prediction
- Duration: ~10 minutes each
Location: PyTorch/08_NLP_Text/
- 00_text_classification_welcome.ipynb - Text Classification Intro
- 01_text_classification_deployment.ipynb - Production-ready model
- 02_imdb_reviews_classification.ipynb - Sentiment analysis
Features:
- Learn: Embeddings, text encoding, sequence processing
- Architecture: Embedding → LSTM → Dense
- Task: Binary text classification
- Dataset: Synthetic review data
- Duration: ~10 minutes each
01_Basics/00_fashion_mnist_basic_cnn.ipynb- Start here!01_Basics/01_learn_sine_regression.ipynb02_Image_Classification/00_cifar10_classification.ipynb
04_Regularization/01_imdb_overfit_underfit.ipynb- Understand generalization03_Advanced_CNN/00_densenet_architecture.ipynb- Modern architectures01_Basics/02_boston_house_price_regression.ipynb- Real data
05_Transfer_Learning/00_imagenet_transfer_learning.ipynb- Leverage pre-trained models05_Transfer_Learning/01_visualize_heat_maps.ipynb- Interpretability06_Image_Segmentation/00_cell_tissue_segmentation.ipynb- Dense prediction07_Time_Series/00_time_series_training.ipynb- Sequence modeling08_NLP_Text/00_text_classification_welcome.ipynb- NLP basics
- ✓ Fully Connected Networks (FCN)
- ✓ Convolutional Neural Networks (CNN)
- ✓ Recurrent Neural Networks (RNN/LSTM/GRU)
- ✓ U-Net (Encoder-Decoder with skip connections)
- ✓ DenseNet (Dense connections)
- ✓ Embedding layers (for text)
- ✓ Supervised learning
- ✓ Classification and regression
- ✓ Transfer learning
- ✓ Data augmentation
- ✓ Regularization (L2, Dropout, Batch Norm)
- ✓ Feature visualization
- ✓ Custom training loops
- ✓ Computer Vision (image classification, segmentation)
- ✓ Time Series (temporal prediction)
- ✓ Natural Language Processing (text classification)
- ✓ Regression (continuous prediction)
class MyNet(nn.Module):
def __init__(self):
super(MyNet, self).__init__()
self.fc = nn.Linear(10, 5)
def forward(self, x):
return self.fc(x)
model = MyNet().to(device)for epoch in range(num_epochs):
model.train()
for x, y in train_loader:
x, y = x.to(device), y.to(device)
outputs = model(x)
loss = loss_fn(outputs, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()model.eval()
with torch.no_grad():
for x, y in test_loader:
x, y = x.to(device), y.to(device)
outputs = model(x)
# Compute metricsdevice = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = model.to(device)
x, y = x.to(device), y.to(device)- Track loss curves (train vs validation)
- Monitor metrics (accuracy, precision, recall)
- Save best models with checkpoints
- Use early stopping for regularization
- Always normalize/standardize inputs
- Use appropriate train/val/test splits
- Apply augmentation only to training data
- Handle class imbalance with weighted loss
- Start with simple models first
- Gradually increase complexity
- Visualize intermediate representations
- Check gradient flow with
model.eval()
- Reduce batch size
- Use gradient accumulation
- Use mixed precision training
- Try CPU training first
- Check data normalization
- Verify loss function choice
- Increase learning rate or use scheduling
- Add regularization (Dropout, L2)
- Enable GPU acceleration
- Use appropriate batch size (32-128)
- Profile bottlenecks
- Use faster data loading (num_workers)
- PyTorch Fundamentals course
- FastAI courses
- Stanford CS231N (CNNs)
- Stanford CS224N (NLP)
| Aspect | Keras | PyTorch |
|---|---|---|
| Model | Sequential/Functional | nn.Module |
| Training | model.fit() | Custom loop |
| Data | Generators | DataLoader |
| Layers | keras.layers | torch.nn |
| Loss | compile() | nn.* classes |
| Optimization | Built-in | torch.optim |
| Device | Implicit | Explicit (.to) |
PyTorch/
├── 01_Basics/ # Fundamental concepts
├── 02_Image_Classification/ # Computer vision intro
├── 03_Advanced_CNN/ # Modern architectures
├── 04_Regularization/ # Preventing overfitting
├── 05_Transfer_Learning/ # Pre-trained models
├── 06_Image_Segmentation/ # Pixel-level prediction
├── 07_Time_Series/ # Temporal sequences
├── 08_NLP_Text/ # Language understanding
└── 09_Advanced_Topics/ # (Placeholder for future)
To add new notebooks or improve existing ones:
- Follow the existing structure and naming conventions
- Include markdown explanations for each section
- Use PyTorch best practices
- Add comments explaining PyTorch-specific concepts
- Include visualization of results
These notebooks are educational materials converted from the original Keras versions.
- PyTorch: 1.9+
- Python: 3.7+
- Last Updated: December 2024
- Total Notebooks: 18
- Total Estimated Training Time: 3-4 hours (CPU)
- Read through markdown explanations
- Execute code cells in order
- Understand the architecture diagram
- Review the training loop
- Analyze the results/visualizations
- Modify hyperparameters and re-run
- Understand PyTorch-specific parts
Enjoy learning with PyTorch! 🔥