Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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 1.2.2和Keras 2.2预测的差异_Python_Tensorflow_Machine Learning_Keras_Lstm - Fatal编程技术网

Python Keras 1.2.2和Keras 2.2预测的差异

Python Keras 1.2.2和Keras 2.2预测的差异,python,tensorflow,machine-learning,keras,lstm,Python,Tensorflow,Machine Learning,Keras,Lstm,我试图用LSTM神经网络预测正弦曲线。我试了一段时间,但在预测方面,我并没有得到一个好的结果。在某些值之后,正弦曲线总是变得混乱。所以我从这篇文章中得到了一些启示: 即使根据之前的预测,他的正弦曲线也只有一点变化。所以我复制了他的密码,但得到了这个预测: 而不是他的: 过了一段时间,我意识到他用了: TensorFlow 1.0 Keras 1.2.2 所以我安装了Keras 1.2.2,看看它是否与tensorflow 1.2.0版有所不同,因为早期版本在windows上不可用。然后我

我试图用LSTM神经网络预测正弦曲线。我试了一段时间,但在预测方面,我并没有得到一个好的结果。在某些值之后,正弦曲线总是变得混乱。所以我从这篇文章中得到了一些启示:

即使根据之前的预测,他的正弦曲线也只有一点变化。所以我复制了他的密码,但得到了这个预测:

而不是他的:

过了一段时间,我意识到他用了:

TensorFlow 1.0
Keras 1.2.2
所以我安装了Keras 1.2.2,看看它是否与tensorflow 1.2.0版有所不同,因为早期版本在windows上不可用。然后我得到了这个预言:

您可以看到正弦曲线更精确,因为它在[-1,1]的值范围内,但比他的预测偏移更多

我已经尝试过多次,结果非常相似。Keras 2.2预测振幅在一段时间后总是变小,而Keras 1.2保持在其值范围内。但我从来没有得到过像他那样好的预测

我需要更多的训练吗?我使用了20个纪元,批量大小为512。 我如何得到这样的预测? 新的Keras版本会给出更谨慎的预测吗

这是我使用的模型:

def build_model(layers):
    model = Sequential()

    model.add(LSTM(
        input_shape=(None, layers[0]),
        #units=layers[1],
        output_dim=layers[1],
        return_sequences=True))
    model.add(Dropout(0.2))

    model.add(LSTM(
        layers[2],
        return_sequences=False))
    model.add(Dropout(0.2))

    model.add(Dense(
        output_dim=layers[3]))
    model.add(Activation("linear"))

    start = time.time()
    model.compile(loss="mse", optimizer="rmsprop")
    print("> Compilation Time : ", time.time() - start)
    return model
使用这些参数:

model = build_model([1, 50, 100, 1])
整个代码可以在这里找到


您应该通过添加数据生成路线使代码完全可复制。在不同版本中,“退出”的应用方式可能有所不同。LSTMCell的实现方式也可能有所不同。此外,初始重量、勒宁率、衰变率等之间可能存在很多差异……我同意@desertnaut,如果我有所有代码,我很乐意对此进行调查@我已经用完整的代码更新了帖子