File size: 3,201 Bytes
dcd5e61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
👟 Sneakers_Classification
Модель для классификации кроссовок с использованием сверточной нейронной сети на основе предобученного ResNet50. Проект реализован на PyTorch и обучается на кастомном датасете изображений различных моделей кроссовок.

📂 Описание проекта
Цель — определить тип/модель кроссовок на изображении. Модель использует предобученную архитектуру ResNet50, дообученную на вашем собственном датасете, содержащем изображения кроссовок, отсортированные по папкам (одна папка = один класс).

🧠 Используемые технологии
Python

PyTorch

torchvision

scikit-learn

PIL

matplotlib / seaborn

🗂️ Структура данных
Путь к данным:
/kaggle/input/sneakers-classification/sneakers-dataset/sneakers-dataset/

python-repl
Copy
Edit
sneakers-dataset/
├── Adidas/
│   ├── img1.jpg
│   ├── img2.jpg
│   └── ...
├── Nike/
│   ├── img1.jpg
│   ├── img2.jpg
│   └── ...
├── Puma/
│   └── ...
...
⚙️ Запуск обучения
📌 Подготовка
bash
Copy
Edit
pip install torch torchvision scikit-learn matplotlib seaborn
🚀 Запуск скрипта
python
Copy
Edit
python sneakers_train.py
В скрипте используется автоматическое определение устройства (GPU, если доступен) и происходит обучение в течение 50 эпох с использованием Adam и CrossEntropyLoss.

🏗️ Архитектура модели
В качестве основы используется ResNet50, где последний fully connected слой заменяется на:

python
Copy
Edit
model.fc = nn.Linear(model.fc.in_features, NUM_CLASSES)
Модель сохраняется в файл best_model.pth после каждой эпохи с улучшением метрики точности на валидации.

📊 Оценка модели
Во время обучения выводятся:

Loss (потери)

Accuracy (точность)

Также вы можете дополнительно использовать confusion_matrix и classification_report из sklearn на тестовой выборке после обучения.

💾 Файлы
sneakers_train.py — основной скрипт обучения

best_model.pth — веса лучшей модели после обучения

📈 Результаты
Использовано классов: NUM_CLASSES

Лучшая точность валидации: X.XXX (выводится в конце обучения)

📬 Обратная связь
Если у вас есть предложения или улучшения, открывайте Issue или Pull Request!