Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何诊断Keras LSTM网络的问题?_Python_Keras_Lstm - Fatal编程技术网

Python 如何诊断Keras LSTM网络的问题?

Python 如何诊断Keras LSTM网络的问题?,python,keras,lstm,Python,Keras,Lstm,我试图在Keras中建立一个LSTM模型,根据各种传感器读数预测机器的故障时间。但是,我不确定如何解释输出,以便改进模型。我的数据是超过50000个连续时间步的15个特征。以下是我目前掌握的代码: from keras.models import Sequential from keras.layers import LSTM batch_size = 50 model = Sequential() model.add(LSTM(1, batch_input_shape=(

我试图在Keras中建立一个LSTM模型,根据各种传感器读数预测机器的故障时间。但是,我不确定如何解释输出,以便改进模型。我的数据是超过50000个连续时间步的15个特征。以下是我目前掌握的代码:

from keras.models import Sequential
from keras.layers import LSTM

batch_size = 50
model = Sequential()
model.add(LSTM(1,
          batch_input_shape=(batch_size, int(len(X_train)/batch_size), 15),
          dropout=0.2,
          stateful=True,
          return_sequences=True))

model.compile(loss='mse', optimizer='adam')

model.fit(X_train, y_train, batch_size=batch_size, 
          epochs=100, shuffle=False, verbose=0)
当我绘制目标与预测的对比图时,该图如下所示:

所有的预测似乎都在一个狭窄的范围内,大多数在-0.5到0.5之间。除了数据似乎不是很好的反应预测因素外,还有其他解释方法吗

编辑:根据建议,我在上面的代码中添加了以下行:

model.add(Dense(1))
这导致了以下目标与预测图:


这似乎与我之前面临的问题相同

LSTM在其输出端有tanh(),即给出范围内的输出。您的图表表明您的目标不限于此领域。考虑在顶部添加一个致密层,没有任何非线性。顺便问一下,你能展示一下学习曲线吗?培训损失和验证损失?同意dedObed,只需在NN的末尾添加一个密集层。