我是keras的新手。
我在数据集上运行它,我的目标是减少logloss。 对于每个时代,它给我相同的损失价值。我是否在正确的轨道上感到困惑。
例如:
Epoch 1/5
91456/91456 [==============================] - 142s - loss: 3.8019 - val_loss: 3.8278
Epoch 2/5
91456/91456 [==============================] - 139s - loss: 3.8019 - val_loss: 3.8278
Epoch 3/5
91456/91456 [==============================] - 143s - loss: 3.8019 - val_loss: 3.8278
Epoch 4/5
91456/91456 [==============================] - 142s - loss: 3.8019 - val_loss: 3.8278
Epoch 5/5
91456/91456 [==============================] - 142s - loss: 3.8019 - val_loss: 3.8278
这里3.8019在每个时代都是一样的。它应该更少。
答案 0 :(得分:5)
我也遇到了这个问题。经过深思熟虑后,我发现这是我输出图层上的激活功能。
我有这个模型来预测二元结果:
model = Sequential()
model.add(Dense(16,input_shape=(8,),activation='relu'))
model.add(Dense(32,activation='relu'))
model.add(Dense(32,activation='relu'))
model.add(Dense(1, activation='softmax'))
我需要这个二进制交叉熵
model = Sequential()
model.add(Dense(16,input_shape=(8,),activation='relu'))
model.add(Dense(32,activation='relu'))
model.add(Dense(32,activation='relu'))
model.add(Dense(1, activation='sigmoid'))
我会关注您尝试解决的问题以及确保您的激活功能是他们所需要的输出。
答案 1 :(得分:0)
通常,当您训练的模型没有足够的容量(或成本函数不合适)时会出现此问题。或者在某些情况下,我们错误地输入模型的数据没有正确准备,因此每个样本的标签可能不正确,这使得模型无能为力,无法减少损失。
答案 2 :(得分:0)
尝试将学习率降低到0.0001并使用Adam。你的学习率是多少?
实际上不清楚它是否存在学习速度或模型复杂性的问题,您能否用这些说明进一步解释:
由于您不熟悉深度学习,因此这些建议足以检查您的模型是否存在问题。你能检查一下并回复吗?