Есть ли какое-нибудь руководство, которому я могу следовать, чтобы помочь настроить CNN, используя последовательный метод? У меня есть набор данных из более чем 100 000 изображений из Kaggle, и я хочу разделить их на 25 различных групп.
Я понимаю, что мне нужно добавить слои Conv2D, MaxPooling2D, Flatten и Dense. Но я не уверен, сколько их и какие параметры задавать. Я понимаю, что мне придется использовать метод проб и ошибок, пока я не добьюсь высокой точности, но сейчас я получаю точность 0%. Я нашел в Интернете следующий фрагмент кода, который работает для классификации из 10 категорий, и я пытаюсь увидеть, как это будет изменено с go на 25 групп.
model = Sequential()
model.add(Conv2D(32, (5, 5), activation='relu', input_shape=(100, 100, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))
Я попытался изменить масштаб ввода на input_shape = (200, 200, 1), чтобы соответствовать размеру моего входного изображения, и я также изменил слой Final Dense с 10 на 25, однако я все еще получаю точность 0%. Любой совет приветствуется!
Моя скомпилированная модель и подгонка показаны ниже:
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=3, batch_size=64, verbose=1, validation_data=(X_test, y_test))