An image classification model for Fashion MNIST using PyTorch Lightning.
Project description
Description
This project implements an image classification model based on the Fashion MNIST dataset, using PyTorch Lightning to structure the code in a modular and scalable way.
The dataset is loaded directly from torchvision.datasets. The goal is to train a simple convolutional network that classifies images into 10 different clothing categories.
Project Structure
fashion-mnist-classifier/
├── models/ # Directory for saved models and checkpoints
├── reports/ # Evaluation reports and generated figures
├── src/
│ └── my_project/ # Project source code
│ ├── __init__.py
│ ├── app.py # Gradio application
│ ├── config.py # Configurations and parameters
│ ├── dataset.py # Dataset and DataModule
│ ├── model.py # PyTorch Lightning model
│ ├── plots.py # Visualization functions
│ └── train.py # Main training script
├── .gitignore
├── LICENSE # Project license
├── pyproject.toml # Project metadata and dependencies
└── README.md # This file
Installation
To install dependencies and prepare the environment with uv, run the following commands in the terminal:
- Download and install dependencies: curl -sSf https://uv.io/install.sh | sh
- Initialize the environment: uv init
- Sync dependencies and environment: uv sync
Training and Evaluation
To run the training and evaluation script, first install the package in editable mode:
uv pip install -e .
Then, run the following command in the terminal:
fashion-mnist-classifier
Building and Publishing to PyPI
To build and publish the package to PyPI, follow these steps:
- Install build tools:
uv pip install build twine
- Build the package:
python -m build
- Publish to PyPI:
twine upload dist/*
You will be prompted for your PyPI username and password.
Technical Details
-Dataset: torchvision.datasets.FashionMNIST with custom transformations.
-Model: Simple CNN with one convolutional layer, pooling, and fully connected layers.
-Training: Implemented with PyTorch Lightning to facilitate handling epochs, performance, and metrics.
-Configuration: Parameters such as batch size, paths, epochs defined in config.py.
-Optimization: Adam with CrossEntropyLoss.
Reports & Visualizations
The project includes detailed reports and visualizations:
- Confusion matrix
- Per-class accuracy
- Calibration curve
- Misclassified image grids
- Pixel distribution analysis
All outputs are stored in the reports/ folder.
Contact
-delrey.132148@e.unavarra.es -goicoechea.128710@e.unavarra.es -haddad.179806@e.unavarra.es
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fashion_mnist_classifier-0.1.2.tar.gz.
File metadata
- Download URL: fashion_mnist_classifier-0.1.2.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c75fc2f3a22594a226a5783d4531d323fdbb3dbd6eb66a32ba63a3ff2dc91ad3
|
|
| MD5 |
0616543d5b8cd12e3ef7bc11aac5cac7
|
|
| BLAKE2b-256 |
1e25778d30d82335624c3b44c6ccb2a81459d81e66e7239f68268d8a2ae128ee
|
File details
Details for the file fashion_mnist_classifier-0.1.2-py3-none-any.whl.
File metadata
- Download URL: fashion_mnist_classifier-0.1.2-py3-none-any.whl
- Upload date:
- Size: 16.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a023dd45d4fd88583833fe8669c8a9623fdd9777327f1fe9ba414455d9d503b
|
|
| MD5 |
9bdcd58f683f7923c2acdd0f365a4127
|
|
| BLAKE2b-256 |
921ed218acb0b51ab6c310282fb0ac5b10ecf0a6250ba2ab5a234a582e222b1a
|