Почему 1-я эпоха отнимает много времени на обучении модели нейронной сети? - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть сомнения по поводу обучения моей нейронной сети, поэтому моя первая эпоха занимает больше времени, например, сейчас первая эпоха занимает около 50 минут, в то время как последующая эпоха занимает всего 2 минуты, почему это так?

где мне искать решение этой проблемы, если это проблема?

Вот код модели для справки:

model = Sequential()
model.add(Conv3D(2, (3,3,3), padding = 'same', input_shape= [num_of_frame, 
          img_rows,img_cols, img_channels] ))
model.add(Activation('relu'))
model.add(Conv3D(64, (3,3,3)))
model.add(Activation('relu'))
model.add(MaxPooling3D(pool_size=(2, 2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(32))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(nb_classes))
model.add(Activation('softmax'))

Я использую adam для оптимизатора, а размер пакета30, запустив его в Google Colab.

Вот код для обучения и проверки:

model.fit_generator(train_generator, steps_per_epoch=steps_per_epoch, epochs=num_epochs, verbose=1, 
                    callbacks=callbacks_list, validation_data=val_generator, 
                    validation_steps=validation_steps, class_weight=None, workers=1, initial_epoch=0)

1 Ответ

0 голосов
/ 30 декабря 2018

Получается, поскольку мой тренировочный код объединен с генератором, общее время стало больше.Как только я вызвал next () вручную на моем генераторе данных, все эпохи начали вести себя одинаково.

...