Какие значения я должен предоставить моему model.sequential () для изображения 500 * 500 * 3? (CNN) - PullRequest
0 голосов
/ 22 марта 2020

Я использую CNN, чтобы использовать 500 * 500 * 3 изображений автомобильных логотипов для определения марок автомобилей.

model = models.Sequential()
model.add(layers.Conv2D(16, (5, 5), activation='relu', input_shape=(500, 500, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(16, (5, 5),activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(16, (5, 5),activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(16, (5, 5),activation='relu'))
model.summary()

Я настроил почти все, но моя точность всегда низкая.

model.add(layers.Flatten())
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(4))
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])
history = model.fit(train_images, train_labels, epochs=10, 
                    validation_data=(test_images, test_labels))

Поезд на 40 образцах, проверка на 20 образцах

Epoch 1/10
40/40 [==============================] - 16s 389ms/sample - loss: 1.4333 - acc: 0.1500 - val_loss: 1.3755 - val_acc: 0.2000
Epoch 2/10
40/40 [==============================] - 15s 378ms/sample - loss: 1.3396 - acc: 0.3750 - val_loss: 1.3578 - val_acc: 0.2000
Epoch 3/10
40/40 [==============================] - 15s 378ms/sample - loss: 1.3015 - acc: 0.5500 - val_loss: 1.3506 - val_acc: 0.3000
Epoch 4/10
40/40 [==============================] - 15s 380ms/sample - loss: 1.2058 - acc: 0.4750 - val_loss: 1.4039 - val_acc: 0.3000
Epoch 5/10
40/40 [==============================] - 15s 378ms/sample - loss: 1.0369 - acc: 0.7750 - val_loss: 1.4080 - val_acc: 0.2500
Epoch 6/10
40/40 [==============================] - 15s 378ms/sample - loss: 0.8541 - acc: 0.8250 - val_loss: 1.6827 - val_acc: 0.2000
Epoch 7/10
40/40 [==============================] - 15s 382ms/sample - loss: 0.6846 - acc: 0.8000 - val_loss: 2.1517 - val_acc: 0.2500
Epoch 8/10
40/40 [==============================] - 15s 378ms/sample - loss: 0.4774 - acc: 0.8750 - val_loss: 2.9194 - val_acc: 0.2000
Epoch 9/10
40/40 [==============================] - 15s 378ms/sample - loss: 0.3912 - acc: 0.8750 - val_loss: 4.0575 - val_acc: 0.3500
Epoch 10/10
40/40 [==============================] - 15s 378ms/sample - loss: 0.3832 - acc: 0.8750 - val_loss: 3.7391 - val_acc: 0.4000

Пожалуйста, помогите мне !!

1 Ответ

0 голосов
/ 22 марта 2020

Тренировки с 500 * 500 * 3 не принесут вам пользы. CNN потратит время на изучение менее важных функций. Оптимальный размер 64 * 64 . Вы можете использовать предварительно обученные модели, такие как VG GNET, RE SNET, чтобы повысить точность до 90% . Уже есть проект, который я видел ранее, который делает аналогичную вещь Github ссылка

...