TransWikia.com

Sudden drop in loss at epoch start, then gradual raise

Data Science Asked by coobit on January 14, 2021

I’m building an autoencoder for natural language words.

The question: Why do I see at the start of each epoch a sudden drop in the loss and then gradual bounce back (loss raises but slowly) followed by a gradual decrease in the loss until another epoch?

The graph of the loss looks a bit like this:

enter image description here
(it’s a mock i’ve made in paint brush:)

Here is the model setup:

#input is a (35,35) matrix of one-hot vectors (one vector for each char in a word)
inputs = layers.Input(shape=(35,35), name='input')
encoded = layers.Masking(mask_value=0., input_shape=(35, 35))(inputs)
encoded = layers.Bidirectional(layers.GRU(256,return_sequences=True))(encoded)
encoded = layers.GRU(32)(encoded)
decoded = layers.RepeatVector(35)(encoded)
decoded = layers.GRU(32,return_sequences=True)(decoded)
decoded = layers.Bidirectional(layers.GRU(256,return_sequences=True))(decoded)
decoded = layers.TimeDistributed(layers.Dense(35,activation='softmax'))(decoded)
model = keras.Model(inputs, decoded, name="toy_model")
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['categorical_crossentropy'])
model.fit(x_train, y_train, shuffle=True, batch_size=32, epochs=10)

p.s. As far as I understand I do shuffle data on each epoch (see the model.fit(shuffle=True))

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP