Учебный проект по компьютерному зрению: классификация изображений датасета CIFAR-10 (60 000 цветных картинок 32×32 в 10 классах). В репозитории сравниваются два подхода — свёрточная сеть как экстрактор признаков + классические алгоритмы, и обучение ResNet-18 «с нуля».
Гибридный пайплайн:
- свёрточная сеть на PyTorch обучается и используется как экстрактор признаков;
- извлечённые эмбеддинги (
train_features.csv,test_features.csv) подаются в классические модели — LDA и логистическую регрессию (scikit-learn); - сравнение качества CNN-классификатора и классических моделей поверх признаков.
Реализация архитектуры ResNet-18 с нуля на PyTorch (остаточные блоки, downsample, BatchNorm), обучение на CIFAR-10. Обученные веса сохранены в checkpoint/resnet18_cifar10.pth.
CIFAR10/
├── CIFAR10 PyTorch CNN LDA LogisticRegression.ipynb
├── CIFAR10 ResNet18 Scratch.ipynb
├── checkpoint/resnet18_cifar10.pth # веса обученной ResNet-18
├── cifar_net.pth # веса CNN
├── train_features.csv / test_features.csv # признаки, извлечённые CNN
└── data/cifar-10-batches-py/ # датасет CIFAR-10
git clone https://github.com/DenisDrobyshev/CIFAR10.git
cd CIFAR10
pip install torch torchvision scikit-learn pandas numpy matplotlib jupyter
jupyter notebookДатасет уже включён в data/, поэтому ноутбуки запускаются без дополнительной загрузки.
PyTorch · torchvision · scikit-learn (LDA, LogisticRegression) · pandas · NumPy · matplotlib