Training a model in keras can go very fast. I trained the following model. To train the model with 1 epoch finishes in a few second. However, using 20 epochs it lasts half an hour or so? An epoch means how often each sample in the training set used to train the model. Therefore, I would naively expect a linear dependency. Which factors do lead to a non-linear behavior?def keras_model(X_train, y_train):    from keras.models import Sequential    from keras.layers import Dense, Dropout, Activation    from keras.optimizers import SGD    model = Sequential()    # Dense(64) is a fully-connected layer with 64 hidden units.    # in the first layer, you must specify the expected input data shape:    # here, 20-dimensional vectors.    model.add(Dense(63, input_dim=63, init='uniform'))    model.add(Activation('tanh'))    model.add(Dropout(0.5))    model.add(Dense(63, init='uniform'))    model.add(Activation('tanh'))    model.add(Dropout(0.5))    model.add(Dense(22, init='uniform'))    model.add(Activation('softmax'))    sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)    model.compile(loss='categorical_crossentropy',                  optimizer=sgd,                  metrics=['accuracy'])    model.fit(X_train, convert_labels_to_matrix(y_train),              nb_epoch=20, batch_size=15)    return model
Does the time to train a model using keras increase linear with epoches?
python;deep learning;tensorflow;keras;theano