与亚当一起训练每一个时代都会变慢

2024-10-08 20:16:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Keras中训练一个简单的神经网络,后端由4个密集层组成,连接到一个合并层,然后连接到一个softmax分类器层。使用Adam进行训练,最初的几个历元训练时间约为60秒(在CPU中),但之后,每个历元的训练时间开始增加,到第70个历元需要400多秒,使其无法使用。在

我的代码有什么问题吗?或者这是应该发生的吗?在

只有在使用Adam时才会发生这种情况,而不是与sgd、adadelta、rmsprop或adagrad一起使用。我会用任何其他方法,但亚当的结果要好得多。在

代码:

modela = Sequential()
modela.add(Dense(700, input_dim=40, init='uniform', activation='relu'))
modelb = Sequential()
modelb.add(Dense(700, input_dim=40, init='uniform', activation='relu'))
modelc = Sequential()
modelc.add(Dense(700, input_dim=40, init='uniform', activation='relu'))
modeld = Sequential()
modeld.add(Dense(700, input_dim=40, init='uniform', activation='relu'))

model = Sequential()
model.add(Merge([modela, modelb, modelc, modeld], mode='concat', concat_axis=1))
model.add(Dense(258, init='uniform', activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

hist = model.fit([Xa, Xb, Xc, Xd], Ycat, validation_split=.25, nb_epoch=80, batch_size=100, verbose=2)

Tags: addinputmodelinituniformactivationdenserelu

热门问题