Search code examples
pythonkeraslstmepoch

epoch taking too long,


I have a good pc with good memory (intel core i7-11th gen, and 16gb of ram) still each of my epochs are taking about 1,5 hour, is it normal to take this long?

from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM

# define model
model = Sequential()
model.add(LSTM(100, activation='relu', input_shape=(n_input, n_features)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
 

model.summary()

# fit model
model.fit(generator,epochs=10)

here is the output of the epochs


Solution

  • From your output it seems you have taken a very small batch_size, hence the huge number of iterations. Considering your 16GB of RAM, you should be able to train on larger batches depending on the richness of your data.

    You can set your batch size in model.fit as:

    model.fit(generator, epochs=10, batch_size=16)
    

    Here the batch_size of 16 is arbitrary, you can choose lesser or more number of batches depending on your system's capacity.

    Or you can also set it in the declaration of the generator like:

    datagen = ImageDataGenerator(rescale=1./255)
    
    image_generator = datagen.flow_from_directory(
        images,
        target_size=input_size,
        batch_size=batch_size,
        class_mode=None)