Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CIFAR-10 Image Classifier (CNN + ResNet)

Проект по классификации изображений на базе датасета CIFAR-10 с использованием свёрточных нейронных сетей (PyTorch).

Описание

Реализованы две архитектуры нейронных сетей:

  • CIFAR10Net — кастомная CNN с BatchNorm, Dropout и последовательными свёрточными блоками
  • CIFAR10ResNet — архитектура с остаточными связями (Residual Connections), вдохновлённая ResNet

Проект включает полный пайплайн глубокого обучения:

  • Загрузка и аугментация данных (RandomCrop, HorizontalFlip, ColorJitter)
  • Обучение с CosineAnnealing LR scheduler
  • Валидация и чекпоинтинг лучшей модели
  • Визуализация: confusion matrix, training curves, per-class accuracy
  • Предсказание для произвольных изображений через CLI

Архитектура проекта

image-classifier-cnn/
├── src/
│   ├── __init__.py
│   ├── config.py        # Конфигурация гиперпараметров
│   ├── model.py         # Архитектуры CNN и ResNet
│   ├── dataset.py       # Загрузка CIFAR-10 и аугментации
│   ├── trainer.py       # Цикл обучения и валидации
│   └── evaluate.py      # Метрики и визуализация
├── notebooks/
│   └── exploration.ipynb
├── train.py             # Скрипт обучения
├── predict.py           # Предсказание для изображения
├── requirements.txt
└── README.md

Быстрый старт

pip install -r requirements.txt

# Обучение ResNet (по умолчанию)
python train.py --epochs 30

# Обучение простой CNN
python train.py --model simple --epochs 30

# Предсказание для изображения
python predict.py path/to/image.jpg

Параметры обучения

Параметр Значение
Optimizer Adam
Learning Rate 0.001
LR Scheduler CosineAnnealingLR
Weight Decay 1e-4
Batch Size 128
Epochs 30
Augmentation RandomCrop, HFlip, ColorJitter

Результаты

ResNet (~0.9M параметров)

Класс Accuracy
airplane 93.2%
automobile 96.1%
bird 87.4%
cat 81.3%
deer 90.8%
dog 85.6%
frog 94.7%
horse 93.5%
ship 95.3%
truck 95.0%
Overall 91.3%

Стек технологий

  • PyTorch — фреймворк глубокого обучения
  • torchvision — загрузка данных и трансформации
  • scikit-learn — метрики классификации
  • matplotlib / seaborn — визуализация

Автор

Артем Мастеров — студент ИТМО, направление «Нейротехнологии и искусственный интеллект»

About

CIFAR-10 Image Classifier using CNN and ResNet (PyTorch)

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages