Welcome to your CNN learning journey! This workspace contains 5 progressive projects designed to build your understanding from the ground up.
New here? → Read the Getting Started Guide for setup instructions, installation, and tips!
Difficulty: ⭐ Beginner
What you'll learn:
- Basic CNN structure (Conv layers, Pooling, Dense layers)
- How images flow through a network
- Training and evaluation basics
- Dataset: Handwritten digits (28x28 grayscale)
Difficulty: ⭐⭐ Beginner+
What you'll learn:
- Working with more complex patterns
- Improving accuracy with better architectures
- Dropout for preventing overfitting
- Dataset: Clothing items (28x28 grayscale)
Difficulty: ⭐⭐⭐ Intermediate
What you'll learn:
- Handling colored images (RGB)
- Deeper CNN architectures
- Batch normalization
- Dataset: 10 classes (airplanes, cars, birds, cats, etc.)
Difficulty: ⭐⭐⭐⭐ Intermediate+
What you'll learn:
- Data augmentation (flipping, rotation, zoom)
- Transfer learning basics
- Working with larger images
- Dataset: Real photos of cats and dogs
Difficulty: ⭐⭐⭐⭐⭐ Advanced
What you'll learn:
- Designing your own architecture
- Experimenting with hyperparameters
- Model comparison and optimization
- Start with Project 1 - Don't skip ahead! Each project builds on previous concepts
- Read the comments - Every line is explained in simple terms
- Run the code - See the results yourself
- Experiment - Change parameters and see what happens
- Ask questions - If something is unclear, ask!
pip install tensorflow numpy matplotlib scikit-learnThink of it as a smart image analyzer that learns patterns. It doesn't memorize images - it learns features like "edges", "curves", "textures" that help identify objects.
- What it does: Scans the image with small filters to detect patterns
- Think of it as: A magnifying glass that looks for specific features
- No complex math needed: Just know it finds patterns!
- What it does: Shrinks the image while keeping important information
- Think of it as: Zooming out to see the big picture
- Benefit: Makes the network faster and reduces overfitting
- What it does: Makes the final decision based on detected features
- Think of it as: The "brain" that combines all clues to make a prediction
- ReLU: Adds non-linearity (helps learn complex patterns)
- Softmax: Converts outputs to probabilities (e.g., 80% dog, 20% cat)
- Don't worry about the math - Focus on understanding what each layer does conceptually
- Visualize - Each project includes visualization code
- Start simple - Begin with small networks, then add complexity
- Monitor training - Watch accuracy improve over epochs
- Experiment - Change one thing at a time and observe the effect
| Project | Expected Accuracy | Training Time |
|---|---|---|
| MNIST | 98-99% | ~2 minutes |
| Fashion MNIST | 88-92% | ~3 minutes |
| CIFAR-10 | 70-75% | ~5 minutes |
| Cats vs Dogs | 80-85% | ~10 minutes |
| Custom | Varies | Varies |
Q: Why does my model get worse after a while?
A: This is called "overfitting" - your model memorized the training data. We'll learn to fix this!
Q: What if my accuracy is lower?
A: That's okay! Focus on understanding the concepts first. Performance will improve with practice.
Q: Do I need a GPU?
A: No! These projects run fine on CPU. They might take a bit longer, but they work.
Head to project_1_mnist/ and open mnist_cnn.py to begin your journey!
Remember: Every expert was once a beginner. Take it one project at a time! 💪