Обновлено, чтобы включить больше информации и контекста.
Я уже видел другие вопросы, подобные этому, но решения, похоже, не помогают мне.У меня есть ~ 1000 меток букв шрифта, и я использую сигмовидную активацию, чтобы вернуть вероятности каждой метки, что это определенный шрифт.Шрифты в оттенках серого, и каждый класс имеет около 60 изображений различного размера на белом фоне.
Я использую обратные вызовы для предотвращения переобучения, он работает в течение 3 эпох и быстро достигает 99,99% val_acc и соотв.с 3 эпохами результаты выглядят так в первой эпохе (500 шагов):
24576/44371 [===============>..............] - ETA: 4480s - loss: 0.0185 - acc: 0.9982]
И в конце после 3 эпох:
44370/44370 [==============================] - 9634s - loss: 0.0177 - acc: 0.9989 - val_loss: 0.0177 - val_acc: 0.9989
Модельные предсказаниясгенерированная модель не где близко, самая близкая - 10% совпадение буквы шрифта, которая выглядит совершенно иначе.Что-то не так, может кто-нибудь помочь мне здесь?Вот код модели:
model = models.Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(150,150,1), activation='relu'))
BatchNormalization(axis=1)
model.add(Flatten())
model.add(Dense(1000, activation='sigmoid'))
model.compile(loss='binary_crossentropy', #categorical_crossentropy
optimizer='adam',
metrics=['accuracy'])
Мои параметры конфигурации:
- 500 шагов обучения (также пробовал 2000)
- 0,0005 скорость обучения (также пробовал 0,1)
- размер партии 32
- эпох между 5 и 20 Я пытался, но выходил рано в 2, чтобы прекратить переоснащение (терпение 2)
Есть ли у кого-нибудь какие-либо предложения