Я довольно плохо знаком с глубоким обучением, занимаюсь хобби-проектами. Прямо сейчас я делаю мультиклассовую классификацию изображений с 200 классами. Есть ли у меня учебник или реальная архитектура, на которую я могу взглянуть?
До сих пор я пробовал базовые сети Dense и CNN, но никогда не достигал лучшей точности, чем 5%.
Пока мой очень простой CNN выглядит следующим образом.
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape,
data_format='channels_first'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(128, (4, 4), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(256, (5, 5), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adam(),
metrics=['accuracy'])
Я искал решения, но так и не смог найти ни одного проекта с таким большим количеством классов (кроме VGG-19 или других SOTA CNN, но я бы попробовал написать свой, так как это для целей обучения). У кого-нибудь были подобные проекты или есть какое-нибудь руководство или какой-либо совет по такой проблеме?
Заранее спасибо.