为什么第一次训练神经网络模型需要很多时间?

时间:2018-12-29 06:27:30

标签: neural-network conv-neural-network

我对训练我的神经网络存有疑问,所以我的第一个历时花费最多的时间,例如,现在第一个历时花费约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 :(得分:0)

所以事实证明,由于我的培训代码与生成器合并,所以总的时间更长。一旦我在数据生成器上手动调用next(),所有纪元就开始以类似的方式运行。