gpt4 book ai didi

tensorflow - 训练损失在 12 个时期后增加

转载 作者:行者123 更新时间:2023-12-05 04:06:41 25 4
gpt4 key购买 nike

我有一个学习分类(二元分类)的模型在 7-14 个时期后几乎以 100% 的准确率进行分类,但在达到最小损失 0.0004 后,在下一个时期它会跳到 7.5(这意味着它有50% 的机会正确分类,同样有纯机会),然后在所有后续时期保持在 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)

最佳答案

对于完全连接的架构,您的网络非常深。您很可能被 vanishing- or exploding gradient 击中了,即由非常小或非常大的数字重复相乘引起的数值问题。我建议使用更浅但更宽的网络,根据我的经验,2-3 层这样的密集层通常就足够了。如果你更喜欢使用更深层次的架构,你可以尝试像 skip connections 这样的东西。 .

关于tensorflow - 训练损失在 12 个时期后增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com