我对训练我的神经网络存有疑问,所以我的第一个历时花费最多的时间,例如,现在第一个历时花费约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)
答案 0 :(得分:0)
所以事实证明,由于我的培训代码与生成器合并,所以总的时间更长。一旦我在数据生成器上手动调用next(),所有纪元就开始以类似的方式运行。