我遇到一个问题,我的LSTM网络的丢失从一个时期到另一个时期根本没有改变。
这不会系统地发生。在相同的代码和相同的数据集的情况下,一次执行可以很好地运行,并且损失可以随着每个时期的减少而减少,而另一次执行则可以遇到持续损失的问题。我无法确定是什么使它顺其自然,这似乎是随机的。
为什么相同的代码和数据集会导致两个不同的结果?
型号代码:
mdl = Sequential()
mdl.add(Dense(3, input_shape=(1, lags), activation='relu'))
mdl.add(LSTM(6, activation='relu'))
mdl.add(Dense(1, activation='relu'))
mdl.compile(loss='mean_squared_error', optimizer='adam')
mdl.fit(X_train, y_train, epochs=10, verbose=2)
执行#1(成功):
Epoch 1/10
- 1s - loss: 0.0401
Epoch 2/10
- 0s - loss: 0.0091
Epoch 3/10
- 0s - loss: 0.0025
Epoch 4/10
- 0s - loss: 0.0012
Epoch 5/10
- 0s - loss: 8.3705e-04
Epoch 6/10
- 0s - loss: 6.6625e-04
Epoch 7/10
- 0s - loss: 5.7399e-04
Epoch 8/10
- 0s - loss: 5.4451e-04
Epoch 9/10
- 0s - loss: 5.0578e-04
Epoch 10/10
- 0s - loss: 4.7520e-04
执行#2(持续损失):
Epoch 1/10
- 1s - loss: 0.0884
Epoch 2/10
- 0s - loss: 0.0884
Epoch 3/10
- 0s - loss: 0.0884
Epoch 4/10
- 0s - loss: 0.0884
Epoch 5/10
- 0s - loss: 0.0884
Epoch 6/10
- 0s - loss: 0.0884
Epoch 7/10
- 0s - loss: 0.0884
Epoch 8/10
- 0s - loss: 0.0884
Epoch 9/10
- 0s - loss: 0.0884
Epoch 10/10
- 0s - loss: 0.0884
答案 0 :(得分:2)
为什么?由于神经网络权重的随机初始化。这定义了重量空间的起点,在您的情况下,似乎有些起点确实不好。