Мы сделали классификацию отходов между органическими и перерабатываемыми, которая может предсказать новые изображения отходов с помощью CNN.

Задача
В этом проекте мы будем классифицировать отходы (среди 2 органических и перерабатываемых) на основе изображения.
Предварительная обработка -
- Во-первых, импортируйте все необходимые библиотеки -
- Загрузите данные и разархивируйте их, чтобы получить доступ к изображениям и этикеткам из вашей записной книжки.
Перечислите все имена папок в вашем наборе данных и проверьте количество классификаций, которые нужно сделать.
Выход:
{'O': 0, 'R': 1}
Чтобы лучше понять наш набор данных, покажите несколько изображений:
Выход:

Разделите набор обучающих данных на обучающий и проверочный наборы.
- Выполните увеличение данных с помощью ImageDataGenerator, чтобы мы могли получать более релевантные данные из существующих изображений, внеся незначительные изменения в набор данных.
- Разделите набор данных для обучения на набор для обучения и набор для проверки.
Выход:
Found 6400 images belonging to 2 classes. Found 1600 images belonging to 2 classes.
Обучение модели:
Выход:
Model: "sequential_1" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_6 (Conv2D) (None, 100, 100, 32) 896 _________________________________________________________________ max_pooling2d_6 (MaxPooling2 (None, 50, 50, 32) 0 _________________________________________________________________ conv2d_7 (Conv2D) (None, 50, 50, 64) 18496 _________________________________________________________________ max_pooling2d_7 (MaxPooling2 (None, 25, 25, 64) 0 _________________________________________________________________ conv2d_8 (Conv2D) (None, 25, 25, 64) 36928 _________________________________________________________________ max_pooling2d_8 (MaxPooling2 (None, 12, 12, 64) 0 _________________________________________________________________ conv2d_9 (Conv2D) (None, 12, 12, 64) 36928 _________________________________________________________________ max_pooling2d_9 (MaxPooling2 (None, 6, 6, 64) 0 _________________________________________________________________ conv2d_10 (Conv2D) (None, 6, 6, 64) 36928 _________________________________________________________________ max_pooling2d_10 (MaxPooling (None, 3, 3, 64) 0 _________________________________________________________________ dropout_2 (Dropout) (None, 3, 3, 64) 0 _________________________________________________________________ conv2d_11 (Conv2D) (None, 3, 3, 64) 36928 _________________________________________________________________ max_pooling2d_11 (MaxPooling (None, 1, 1, 64) 0 _________________________________________________________________ flatten_1 (Flatten) (None, 64) 0 _________________________________________________________________ dense_2 (Dense) (None, 256) 16640 _________________________________________________________________ activation_2 (Activation) (None, 256) 0 _________________________________________________________________ dropout_3 (Dropout) (None, 256) 0 _________________________________________________________________ dense_3 (Dense) (None, 2) 514 _________________________________________________________________ activation_3 (Activation) (None, 2) 0 ================================================================= Total params: 184,258 Trainable params: 184,258 Non-trainable params: 0 _________________________________________________________________
Скомпилируйте и подгоните модель:
Выход:
Epoch 1/5 200/200 [==============================] - 178s 890ms/step - loss: 0.5065 - accuracy: 0.7566 - val_loss: 0.4218 - val_accuracy: 0.8231 Epoch 2/5 200/200 [==============================] - 177s 887ms/step - loss: 0.4279 - accuracy: 0.8209 - val_loss: 0.3954 - val_accuracy: 0.8138 Epoch 3/5 200/200 [==============================] - 176s 882ms/step - loss: 0.3911 - accuracy: 0.8397 - val_loss: 0.3798 - val_accuracy: 0.8275 Epoch 4/5 200/200 [==============================] - 177s 883ms/step - loss: 0.3680 - accuracy: 0.8470 - val_loss: 0.3782 - val_accuracy: 0.8331 Epoch 5/5 200/200 [==============================] - 178s 888ms/step - loss: 0.3413 - accuracy: 0.8619 - val_loss: 0.3204 - val_accuracy: 0.8669
Производительность модели:
Выход:


Делаем прогнозы:

Случайным образом выберите изображение из тестового набора и передайте его нашей модели, чтобы делать прогнозы.
Выход:
Prediction is R.