gpt4 book ai didi

python - 为什么 Keras 的 train_on_batch 在第二个 epoch 产生零损失和准确率?

转载 作者:行者123 更新时间:2023-12-03 17:36:25 25 4
gpt4 key购买 nike

我正在使用一个大数据集,所以我正在尝试使用 train_on_batch(或适合 epoch = 1)

model = Sequential()
model.add(LSTM(size,input_shape=input_shape,return_sequences=False))
model.add(Dense(output_dim))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=["accuracy"])

for e in range(nb_epoch):
for batch_X, batch_y in batches:
model.train_on_batch(batch_X,batch_y)
# or
# model.fit(batch_X,batch_y,batch_size=batch_size,nb_epoch=1,verbose=1,shuffle=True,)

但是当训练开始时,会发生这种情况:
(0, 128)
Epoch 1/1
128/128 [==============================] - 2s - loss: 0.3262 - acc: 0.1130

(129, 257)
Epoch 1/1
128/128 [==============================] - 2s - loss: -0.0000e+00 - acc: 0.0000e+00

不管我等了多少个时代,它都不会改变。即使我更改了批量大小,也会发生同样的事情:第一批具有良好的值,然后它再次变为“损失:-0.0000e+00 - acc:0.0000e+00”。

有人可以帮助理解这里发生的事情吗?

最佳答案

如果类别太多并且您的数据集不好;当系统没有找到好的结果时,它会自动打印局部最小值 .尝试改变学习率。

opt = keras.optimizers.Adam(learning_rate=0.01)
model.compile(loss='categorical_crossentropy', optimizer=opt)

关于python - 为什么 Keras 的 train_on_batch 在第二个 epoch 产生零损失和准确率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37543132/

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