Metadata-Version: 2.4
Name: cifar10_tools
Version: 0.4.0
Summary: Tools for training neural networks on the CIFAR-10 task with PyTorch and TensorFlow
License: GPLv3
License-File: LICENSE
Keywords: Python,Machine learning,Deep learning,CNNs,Computer vision,Image classification,CIFAR-10
Author: gperdrizet
Author-email: george@perdrizet.org
Requires-Python: >=3.10,<3.13
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Provides-Extra: tensorflow
Requires-Dist: numpy (>=1.24)
Requires-Dist: torch (>=2.0)
Requires-Dist: torchvision (>=0.15)
Project-URL: Documentation, https://gperdrizet.github.io/CIFAR10/README.md
Project-URL: Homepage, https://github.com/gperdrizet/CIFAR10
Project-URL: Issues, https://github.com/gperdrizet/CIFAR10/issues
Project-URL: PyPI, https://pypi.org/project/cifar10_tools
Project-URL: Repository, https://github.com/gperdrizet/CIFAR10
Description-Content-Type: text/markdown

# PyTorch: CIFAR-10 Demonstration

A progressive deep learning tutorial for image classification on the CIFAR-10 dataset using PyTorch. This project demonstrates the evolution from basic deep neural networks to optimized convolutional neural networks with data augmentation. It also provides a set of utility functions as a PyPI package for use in other projects.

[View on PyPI](https://pypi.org/project/cifar10_tools)

## Installation

Install the helper tools package locally in editable mode:

```bash
pip install -e .
```

## Project Overview

This repository contains a series of Jupyter notebooks that progressively build more sophisticated neural network architectures for the CIFAR-10 image classification task. Each notebook builds upon concepts from the previous one, demonstrating key deep learning techniques.

## Notebooks

| Notebook | Description |
|----------|-------------|
| [01-DNN.ipynb](notebooks/01-DNN.ipynb) | **Deep Neural Network** - Baseline fully-connected DNN classifier using `nn.Sequential`. Establishes a performance baseline with a simple architecture. |
| [02-CNN.ipynb](notebooks/02-CNN.ipynb) | **Convolutional Neural Network** - Introduction to CNNs with convolutional and pooling layers using `nn.Sequential`. Demonstrates the advantage of CNNs over DNNs for image tasks. |
| [03-RGB-CNN.ipynb](notebooks/03-RGB-CNN.ipynb) | **RGB CNN** - CNN classifier that utilizes full RGB color information instead of grayscale, improving feature extraction from color images. |
| [04-optimized-CNN.ipynb](notebooks/04-optimized-CNN.ipynb) | **Hyperparameter Optimization** - Uses Optuna for automated hyperparameter tuning to find optimal network architecture and training parameters. |
| [05-augmented-CNN.ipynb](notebooks/05-augmented-CNN.ipynb) | **Data Augmentation** - Trains the optimized CNN architecture with image augmentation techniques for improved generalization and robustness. |

## Requirements

- Python >=3.10, <3.13
- PyTorch >=2.0
- torchvision >=0.15
- numpy >=1.24

## License

This project is licensed under the GPLv3 License - see the [LICENSE](LICENSE) file for details.
