В настоящее время я пытаюсь обучить автоэнкодер, который позволяет представлять массив длиной 128 целочисленных переменных до сжатия 64. Массив содержит 128 целочисленных значений в диапазоне от 0 до 255.
I обучайте модель с более чем 2 миллионами точек данных каждую эпоху. Каждый массив имеет такую форму: [1, 9, 0, 4, 255, 7, 6, ..., 200]
input_img = Input(shape=(128,))
encoded = Dense(128, activation=activation)(input_img)
encoded = Dense(128, activation=activation)(encoded)
encoded = Dense(64, activation=activation)(encoded)
decoded = Dense(128, activation=activation)(encoded)
decoded = Dense(128, activation='linear')(decoded)
autoencoder = Model(input_img, decoded)
autoencoder.compile(optimizer='adam', loss='mse')
history = autoencoder.fit(np.array(training), np.array(training),
epochs=50,
batch_size=256,
shuffle=True,
validation_data=(np.array(test), np.array(test)),
callbacks=[checkpoint, early_stopping])
Я также загружу график c, показывающий обучение и процесс проверки: График потерь при обучении
Как я могу снизить потери в дальнейшем. То, что я пробовал до сих пор (ни один из вариантов не привел к успеху):
- Более длительная фаза обучения
- Больше слоев