Skip to content

90% accuracy resnet-like CNN from scratch for Intel Image Classification dataset WITHOUT transfer learning and with complex metrics.

Notifications You must be signed in to change notification settings

Delshi/Intel-Image-Classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Convolutional Neural Network for Intel Image Classification

Эффективная сверточная нейронная сеть, достигающая 90% точности на датасете Intel Image Classification всего за 12-30 эпох обучения без использования предобученных сетей с комплексным мониторингом метрик.

Результаты

  • 90.07% точность
  • Быстрая сходимость: 89%+ accuracy всего за 12-30 эпох
  • ResNet-подобная архитектура, реализованная с нуля
  • Исчерпывающий мониторинг через TensorBoard
  • Отличные PR-кривые и гистограммы
  • Overfitting gap всего 0.17%

Архитектура

Полная диаграмма

CNN Full Graph



CNN Principal Scheme

Оптимизатор

Были испытаны различные оптимизаторы, включая PNMBelief, DiffPNM, Adam, AdamW, SGD, NSGD. В результате тестирования и тонкой настройки выявлено, что оптимизаторы с положительно-отрицательной оценкой момента не дают прироста точности для данной модели. Оптимизаторы типа SGD и Nesterov SGD также не показали преимуществ ни в точности, ни в скорости сходимости.

Лучшим оптимизатором оказался AdamW, достигший максимальной точности 90.07% с наибольшей скоростью сходимости. Модель с оптимизатором AdamW достигает около 89% точности всего за 12-30 эпох, что значительно быстрее других оптимизаторов, отстающих в среднем на 10-15 эпох при аналогичных условиях.

Опытным путем определены оптимальные параметры:

  num_epochs: 30
  batch_size: 40

  learning_rate: 0.000375
  beta0: 0.915
  beta1: 0.985
  weight_decay: 0.0017

Метрики

Проект включает исчерпывающий набор метрик и визуализаций:

TensorBoard

  • Confusion Matrix - матрица ошибок с абсолютными и нормализованными значениями
  • PR-Curves - Precision-Recall кривые с хорошим покрытием
  • Weight/Bias/Gradient гистограммы и распределения для всех слоев модели
  • Основные метрики loss и accuracy для train и test

Scalars

Accuracy

Loss

Learning Rate

PR-Curves

PR-Curve Forest PR-Curve Sea PR-Curve Street

Confusion Matrix

Confusion Matrix Epoch 2 Confusion Matrix Epoch 27

Матрицы ошибок на 2-й и 27-й эпохах

Histograms

Gradients Histograms Biases Histograms

Гистограммы градиентов и смещений

Distributions

Biases Distributions Gradients Distributions

Распределения смещений и градиентов

Установка

poetry install

Использование

python scripts/train.py

tensorboard --logdir=outputs/logs

python scripts/predict.py

Зависимости

  • ~3 GB VRAM/RAM
  • Python >=3.13,<3.15
  • NumPy (>=2.3.5,<3.0.0)
  • Tqdm (>=4.67.1,<5.0.0)
  • Torch (>=2.9.1,<3.0.0)
  • Torchvision (>=0.24.1,<0.25.0)
  • Scikit-learn (>=1.7.2,<2.0.0)
  • Tensorboard (>=2.20.0,<3.0.0)
  • Torchviz (>=0.0.3,<0.0.4)

Releases

No releases published

Packages

No packages published

Languages