keras val_loss每次都不同

时间:2020-06-30 13:50:15

标签: python tensorflow keras neural-network lstm

我是Keras的新手。我正在研究具有LSTM层的深度学习模型。
但是val_loss输出各不相同。
例如,这是我的第一个运行输出:

Using TensorFlow backend.
Epoch 1/40
500/500 [==============================] - 10s 19ms/step - loss: 0.4310 - val_loss: 1.9291
Epoch 2/40
500/500 [==============================] - 8s 16ms/step - loss: 0.2082 - val_loss: 2.1047
Epoch 3/40
500/500 [==============================] - 8s 17ms/step - loss: 0.1810 - val_loss: 2.1206
Epoch 4/40
500/500 [==============================] - 8s 15ms/step - loss: 0.1679 - val_loss: 2.2483

enter image description here

这是我的第二个运行输出:

Epoch 1/40
500/500 [==============================] - 8s 16ms/step - loss: 0.4424 - val_loss: 0.2251
Epoch 2/40
500/500 [==============================] - 8s 17ms/step - loss: 0.2142 - val_loss: 0.2313
Epoch 3/40
500/500 [==============================] - 8s 16ms/step - loss: 0.1807 - val_loss: 0.2031
Epoch 4/40
500/500 [==============================] - 8s 16ms/step - loss: 0.1682 - val_loss: 0.2667

enter image description here

我不知道为什么会发生,也无法解决它的过拟合问题。
这是我的代码:

from keras.models import Sequential
from keras import layers
from keras.optimizers import RMSprop
from keras import regularizers
model = Sequential()
model.add(layers.LSTM(64,
                     kernel_regularizer=regularizers.l2(0.01), 
                     dropout=0.2,
                     recurrent_dropout=0.5,
                     input_shape=(None, float_data.shape[-1])))
model.add(layers.Dense(1))
model.compile(optimizer=RMSprop(), loss='mae')
history = model.fit_generator(train_gen,
                              steps_per_epoch=500,
                              epochs=40,
                              validation_data=val_gen,
                              validation_steps=val_steps)

我的数据大小是2733行×50列,batch_size是32。
感谢你的帮助!如果需要,我可以提供更多代码。

2 个答案:

答案 0 :(得分:0)

我不认为代码有什么问题。正如任何形式的机器学习所预期的那样,这只是随机性。只要损耗值的波动幅度不大,就应该是一个问题。只需将其视为计算机学习相同的东西但使用不同的步骤即可。

Cheerio!

答案 1 :(得分:-1)

您正在训练时改变体重。当然,验证损失会发生变化。.并且希望它会下降,并且类似于训练损失,这可能意味着您并没有过拟合!