Network for the classification of curds by foto
- Тензор размерности (150,150,2).
- 2 ветки Conv2D. В 1 ветке в Conv2D ядро, геометрии типа квадрат. Во 2 ветке - прямоугольник.
- После слияния concatenate, сжимается пространство и усредняется с помощью GlobalAveragePooling2D
- На слоях Conv2D используется функция активации 'relu'. На Dense - 'softmax'
- Для увеличения скорости обработки тензора и поиска зависимостей, применены слои MaxPooling2D(2). 4 раза в каждой ветке (150->9)
- Для увеличения скорости обработки тензора, применены слои BatchNormalization
- Для сокращения переобучения сети - Dropout
- Загрузка цветного изображения
- Кадрирование изображения. Сравнивается высота и ширина, проигравший размер "вытягивается" без изменения размера изображения, "новая площадь" заполняется чёрным.
- Изменение размера до 150х150
- Конвертирование изображение в градации серого
- Перевод изображение в тензор (150,150,2)
- Запись всех тензоров в Pandas DataFrame
- "Перемешивание" данных в каждом классе, используя np.random.shuffle
- Сравнение количества тензоров в каждом классе.
- Вычисление класса с минимальным количеством тензоров.
- "Усечение" количества тензоров во всех классах до минимального.
- Нормализация данных в тензорах, делением на 255.
- Для всех этапов: batch_size=64, loss='sparse_categorical_crossentropy', metrics=['accuracy'], фильтр по val_accuracy.
- 1 этап: epochs=100, optimizer=Adam(1e-3)
- 2 этап: epochs=50, optimizer=Adam(1e-4)
- 3 этап: epochs=50, optimizer=Adam(1e-5)
- val_acc: 0.9240
- acc: 0.9985
- val_loss: 0.4762
- loss: 0.0060
- Confusion Matrix: All по горизонтали - количество данных, остальные ячейки - % predict. Те. сколько изображений этого класса были отнесены сетью к данному классу по отношению к общему кол-ву изображений класса.
Пример:
В тестовой выборке 5 классов, по 100 изображений в каждом классе.
Pred 0 1 2 3 4 All
True
0 92.0 1.0 3.0 1.0 3.0 100 %
1 0.0 97.0 0.0 3.0 0.0 100 %
2 3.0 1.0 95.0 0.0 1.0 100 %
3 1.0 5.0 1.0 90.0 3.0 100 %
4 5.0 2.0 3.0 2.0 88.0 100 %
All 101 106 102 96 95 500
Пример:
В тестовой выборке 5 классов, по 871, 1042, 796, 958, 978 изображений соответственно в каждом классе.
Pred 0 1 2 3 4 All
True
0 98.509 0.229 0.688 0.115 0.459 100 %
1 0.000 99.122 0.293 0.585 0.000 100 %
2 0.000 0.000 100.0 0.000 0.000 100 %
3 0.103 1.643 0.616 96.920 0.719 100 %
4 1.103 0.802 0.401 0.702 96.991 100 %
All 871 1042 796 958 978 4645
