Я пытаюсь обучить модель CNN распознавать 28 различных классов.Вот моя модель:
model = Sequential()
model.add(Conv2D(16, (2,2), input_shape=(image_x, image_y, 1), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'))
model.add(Conv2D(32, (5,5), activation='relu'))
model.add(MaxPooling2D(pool_size=(5, 5), strides=(5, 5), padding='same'))
model.add(Conv2D(64, (5,5), activation='relu'))
model.add(MaxPooling2D(pool_size=(5, 5), strides=(5, 5), padding='same'))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_of_classes, activation='softmax'))
sgd = optimizers.SGD(lr=1e-2)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
А вот эпоха и все остальное:
model, callbacks_list = cnn_model()
model.summary()
model.fit(train_images, train_labels, validation_data=(test_images, test_labels), epochs=20, batch_size=500, callbacks=callbacks_list)
scores = model.evaluate(test_images, test_labels, verbose=0)
Проблема в том, что, когда я тренирую эту модель на моем ПК, я получаю точность 3-5%.,Тем не менее, когда я обучаюсь на Google Colab, я получаю точность 99,57%.
Мои пакеты для ПК и прочее:
python 3.6.8
tensorflow 1.13.1
keras 2.2.4
Все, что я делал, это загружал все на Google Colab и тестировал на удивительный результат..