当纪元增加时,如何减少损失?

时间:2019-08-16 05:23:07

标签: python tensorflow machine-learning keras deep-learning

我有一个问题,就是随着时代的增加,损失不会减少。

这是我的代码

model = Sequential()

model.add(LSTM(50, input_shape=(None, 1)))
model.add(Dropout(0.05))
BatchNormalization()


model.add(Dense(1))

model.compile(loss='mean_squared_error', optimizer=optimizers.Adam(lr=0.01, decay=0.001))

hist = model.fit(x_train, y_train, epochs=40, batch_size=32, verbose=2)

Total parameters是10451和

train dataset是2285的数字

我想知道total参数对于train_data是否合理。 换句话说,我想知道总参数是否适合具有train_data的比率。

这是我的损失图 1

我尝试了参数和超参数调整,但这无法解决。

数据集已在0到1之间进行了预处理。

合奏使结果更糟。

当纪元增加时,如何减少损失?

1 个答案:

答案 0 :(得分:0)

您的问题确实没有简单的答案。您有一个损失图,显示了快速的初始学习,然后在几个时期后逐渐减慢了速度。这是很普遍的现象。

您的问题相当于“如何为该数据集建立更好的机器学习模型?”。一般来说,这是一个不可能回答的问题。

直接可以增加层数,权重等。最终(至少在理论上),您的模型将具有足够的复杂性来存储您的整个训练集并将损失降低到接近0。当涉及到以前从未见过的数据时,最终的模型几乎可以肯定会过拟合并表现得很差。

客观地,如果您的标签在0和1之间均匀分布,您似乎已经具有非常低的损耗值(小于0.0005 MSE,对吗?)?

您是否在测试仪上尝试过此方法?尚不清楚为什么您需要进一步降低它。