gpt4 book ai didi

python - 训练集的不同 MSE 结果

转载 作者:行者123 更新时间:2023-11-30 09:45:29 25 4
gpt4 key购买 nike

我得到了不同的 mse 结果。在训练过程中,我在最后一个训练周期后得到 0.296,当我评估我的模型时,我得到 0.112。有谁知道为什么会这样吗?

这是代码:

model = Sequential()
model.add(Dropout(0.2))
model.add(LSTM(100, return_sequences=True,batch_input_shape=(batch_size,look_back,dim_x)))
model.add(Dropout(0.2))
model.add(LSTM(150,return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(100,return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(50,return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(1, activation='linear'))

model.compile(loss='mean_squared_error', optimizer='adam')
history=model.fit(x_train_r, y_train_r, validation_data=(x_test_r, y_test_r),\
epochs=epochs, batch_size=batch_size, callbacks=[es])

score_test = model.evaluate(x_test_r, y_test_r,batch_size=batch_size)
score_train = model.evaluate(x_train_r, y_train_r,batch_size=batch_size)

print("Score Training Data:")
print(score_train)

批量大小和一切都保持不变。有谁知道为什么我的 mse 结果如此不同?

最佳答案

训练损失与训练完成后在训练数据上获得的损失之间存在差异的原因是模型中存在Dropout层。这是因为该层在训练和推理期间具有不同的行为。正如我在 another answer 中提到的,您可以通过将 training=True 传递给 dropout 调用,或使用 K.learning_phase() 标志和后端函数来使此行为相同。

关于python - 训练集的不同 MSE 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53156244/

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