Successfully converted 18 Keras notebooks to PyTorch equivalents. All notebooks follow PyTorch best practices and maintain the same learning structure as the original Keras versions.
-
✅
00_fashion_mnist_basic_cnn.ipynb- Fashion MNIST image classification- Converts: Keras Sequential model to PyTorch nn.Module
- Custom training loop with epoch iteration
- Model: Flatten → Dense(128, relu) → Dense(10, softmax)
- Includes visualization of predictions and confidence scores
-
✅
01_learn_sine_regression.ipynb- Sine function regression- Regression task learning sine function
- Architecture: Input → Dense(64, relu) → Dense(32, relu) → Output
- Training/validation split (90/10)
- Loss visualization and prediction comparison
-
✅
02_boston_house_price_regression.ipynb- Boston house price prediction- Real estate price regression task
- Feature normalization using StandardScaler
- Model: Input → Dense(64, relu) → Dense(32, relu) → Output
- Performance metrics: MSE, RMSE, MAE
- ✅
00_cifar10_classification.ipynb- CIFAR-10 cat vs dog classification- Binary classification (cat=0, dog=1)
- Architecture: Conv2D(3→32→64) → Flatten → Dense(256) → Dense(128) → Dense(1, sigmoid)
- Data augmentation support
- Training and validation metrics
- ✅
00_densenet_architecture.ipynb- DenseNet transfer learning- Custom DenseBlock implementation
- Pre-trained DenseNet121 from ImageNet
- Fine-tuning strategy with frozen backbone
- Demonstrates transfer learning advantages
-
✅
00_cifar10_regularization.ipynb- Regularization techniques- L2 regularization via weight_decay in optimizer
- Dropout layers for regularization
- Batch normalization
- Data augmentation with random flips
-
✅
01_imdb_overfit_underfit.ipynb- Overfitting vs underfitting analysis- Three models: Simple (underfit), Medium (well-fit), Complex (overfit)
- Comparison of training/validation curves
- Demonstrates model capacity effects on generalization
-
✅
00_imagenet_transfer_learning.ipynb- Transfer learning with ResNet50- Pre-trained ImageNet weights
- Fine-tuning strategy: freeze backbone, retrain classifier
- Demonstrates rapid learning on limited data
- Layer freezing and selective optimization
-
✅
01_visualize_heat_maps.ipynb- Feature visualization and Grad-CAM- Feature extraction using hooks
- Grad-CAM implementation for visualization
- Visualization of intermediate layer activations
- Class activation maps for interpretability
- ✅
00_cell_tissue_segmentation.ipynb- U-Net segmentation - ✅
01_mitosis_detection_brightfield.ipynb- U-Net segmentation - ✅
02_mitosis_detection_phase_contrast.ipynb- U-Net segmentation - ✅
03_mitosis_xenopus_detection.ipynb- U-Net segmentation
All segmentation notebooks include:
- Complete U-Net architecture with encoder-decoder structure
- DoubleConv, Down, and Up blocks
- Synthetic dataset generation for demonstration
- Binary cross-entropy loss with logits
- Mask visualization
- ✅
00_time_series_training.ipynb- LSTM time series prediction - ✅
01_time_series_prediction.ipynb- LSTM time series prediction
Both include:
- Synthetic time series data generation
- Sequence preparation with sliding windows
- LSTM architecture with multiple layers
- Prediction visualization
- MSE evaluation
- ✅
00_text_classification_welcome.ipynb- Text classification - ✅
01_text_classification_deployment.ipynb- Text classification - ✅
02_imdb_reviews_classification.ipynb- Text classification
All NLP notebooks include:
- Embedding layer for word representation
- LSTM for sequence processing
- Binary text classification (2 classes)
- Synthetic text dataset
- Training/validation split
- Loss and accuracy tracking
- Keras Sequential → PyTorch nn.Module
- Keras layers → PyTorch nn layers
Dense→LinearConv2D→Conv2dMaxPooling2D→MaxPool2dFlatten→FlattenDropout→DropoutBatchNormalization→BatchNorm2d
- keras model.fit() → Custom training loop
- Epoch iteration
- Batch iteration with DataLoader
- Forward pass, loss computation, backward pass
- Optimizer step
- Keras data generators → PyTorch DataLoader + TensorDataset
- keras.datasets → torchvision.datasets
- Train/test splits handled with TensorDataset or custom Dataset classes
- 'sparse_categorical_crossentropy' → nn.CrossEntropyLoss()
- 'binary_crossentropy' → nn.BCELoss() or nn.BCEWithLogitsLoss()
- 'mse' → nn.MSELoss()
- keras.optimizers.Adam(lr=...) → torch.optim.Adam(..., lr=...)
- keras.optimizers.SGD → torch.optim.SGD
- Weight decay for L2 regularization:
weight_decayparameter
All notebooks include:
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = model.to(device)- Module-based architecture: All models inherit from
nn.Module - Device agnostic: Code works on CPU and GPU with proper device management
- Training/eval modes: Proper use of
model.train()andmodel.eval() - Gradient management: Use of
torch.no_grad()for inference - No gradient computation: Explicit
optimizer.zero_grad()calls - Proper tensor handling: Appropriate use of
.to(device)and.cpu() - DataLoader usage: Efficient batching with PyTorch DataLoader
- Hook-based visualization: For advanced feature visualization (Grad-CAM)
PyTorch/
├── 01_Basics/
│ ├── 00_fashion_mnist_basic_cnn.ipynb
│ ├── 01_learn_sine_regression.ipynb
│ └── 02_boston_house_price_regression.ipynb
├── 02_Image_Classification/
│ └── 00_cifar10_classification.ipynb
├── 03_Advanced_CNN/
│ └── 00_densenet_architecture.ipynb
├── 04_Regularization/
│ ├── 00_cifar10_regularization.ipynb
│ └── 01_imdb_overfit_underfit.ipynb
├── 05_Transfer_Learning/
│ ├── 00_imagenet_transfer_learning.ipynb
│ └── 01_visualize_heat_maps.ipynb
├── 06_Image_Segmentation/
│ ├── 00_cell_tissue_segmentation.ipynb
│ ├── 01_mitosis_detection_brightfield.ipynb
│ ├── 02_mitosis_detection_phase_contrast.ipynb
│ └── 03_mitosis_xenopus_detection.ipynb
├── 07_Time_Series/
│ ├── 00_time_series_training.ipynb
│ └── 01_time_series_prediction.ipynb
└── 08_NLP_Text/
├── 00_text_classification_welcome.ipynb
├── 01_text_classification_deployment.ipynb
└── 02_imdb_reviews_classification.ipynb
- Clear markdown explanations and learning objectives
- Proper imports and library initialization
- Data loading and preprocessing
- Model architecture definition
- Training loops with metrics tracking
- Visualization of results
- Performance evaluation
- Transfer learning: Pre-trained ImageNet models
- Data augmentation: Random transforms for training
- Visualization: Feature maps, Grad-CAM, prediction visualizations
- Regularization: Dropout, batch norm, weight decay, L2
- Advanced architectures: U-Net, LSTM, GRU, DenseNet
- Hooks: For capturing intermediate representations
pip install torch torchvision torchaudio
pip install numpy matplotlib scikit-learnEach notebook can be run directly in Jupyter:
jupyter notebook PyTorch/01_Basics/00_fashion_mnist_basic_cnn.ipynbAll notebooks are self-contained and include data loading, so they require minimal external setup.
The conversion was performed programmatically using Python scripts that:
- Parse notebook structure
- Convert Keras code patterns to PyTorch equivalents
- Implement proper PyTorch training loops
- Maintain educational content and explanations
- Generate valid Jupyter notebook JSON format
- All notebooks use synthetic or publicly available datasets (CIFAR-10, Fashion-MNIST, Boston housing)
- Training parameters are set to reasonable values for quick demonstration
- Architecture choices mirror the original Keras notebooks where applicable
- Comments explain PyTorch-specific concepts
- Visualizations are consistent with original notebooks
- PyTorch: 1.9+
- Python: 3.7+
- GPU Support: Optional (code runs on CPU)
- Jupyter: Any recent version
- Total Notebooks Converted: 18
- Total Cells: ~250+
- Total Size: ~160 KB
- Coverage: 8 learning categories
- Conversion Rate: 100%