i am currently trying to train an autoencoder which allows the representation of an array with the length of 128 integer variables to a compression of 64. The array contains 128 integer values ranging from 0 to 255.
I train the model with over 2 million datapoints each epoch. Each array has a form like this: [ 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])
I will also upload a graphic showing the training and validation process: Loss graph of Training
How is it possible for me to lower the loss further. What I have tried so far (neither option has led to success):
- Longer training phase
- More Layer