【发布时间】:2018-04-02 18:08:30
【问题描述】:
我有一个模型,它在 7-14 个 epoch 后几乎以 100% 的准确率学习分类(二元分类),但在达到 0.0004 的最小损失后,在下一个 epoch 中它会跃升至 7.5(这意味着它有50% 的机会正确分类,同样有纯粹的机会),然后在所有后续 epoch 中保持在 7. 附近。
我使用 adam 优化器来处理学习率。
如何防止训练损失增加?
SGD 优化器不会发生这种巨大的跳跃。
inputs = Input(shape=(X_train.shape[1],))
Dx = Dense(32, activation="relu")(inputs)
Dx = Dense(32, activation="relu")(Dx)
for i in range(20):
Dx = Dense(32, activation="relu")(Dx)
Dx = Dense(1, activation="sigmoid")(Dx)
D = Model(input=[inputs], output=[Dx])
D.compile(loss="binary_crossentropy", optimizer="adam")
D.fit(X_train, y_train, nb_epoch=20)
【问题讨论】:
标签: tensorflow neural-network keras