2017-08-29 6 views
1

私が持っている:OUTPUTでINPUT LSTM-Kerasは時系列間の依存関係を考慮していますか?

  • 予測時系列点として

    • 複数の時系列

    どのモデルが入力内のすべての時系列間の依存関係を使用してデータを予測することを確認することができますか?

    編集1
    私の現在のモデル:

    model = Sequential() 
    model.add(keras.layers.LSTM(hidden_nodes, input_dim=num_features, input_length=window, consume_less="mem")) 
    model.add(keras.layers.Dense(num_features, activation='sigmoid')) 
    optimizer = keras.optimizers.SGD(lr=learning_rate, decay=1e-6, momentum=0.9, nesterov=True) 
    
  • +0

    はあなたの現在のモデルを追加することはできますか? – DJK

    答えて

    1

    デフォルトのLSTMのkerasにおける層(および再発性層の他のタイプ)によっては、ステートフルないので、状態は毎回新しいにリセットされます入力はネットワークに供給される。あなたのコードはこのデフォルトバージョンを使用します。必要に応じて、LSTMレイヤー内にstateful=Trueを指定してステートフルにすることができます。その後、状態はリセットされません。関連する構文の詳細はherethis blog postではステートフルモードに関する詳細を参照できます。ここで

    hereから取られ、対応する構文の例を示します。

    trainX = numpy.reshape(trainX, (trainX.shape[0], trainX.shape[1], 1)) 
    testX = numpy.reshape(testX, (testX.shape[0], testX.shape[1], 1)) 
    # create and fit the LSTM network 
    batch_size = 1 
    model = Sequential() 
    model.add(LSTM(4, batch_input_shape=(batch_size, look_back, 1), stateful=True)) 
    model.add(Dense(1)) 
    model.compile(loss='mean_squared_error', optimizer='adam') 
    for i in range(100): 
        model.fit(trainX, trainY, epochs=1, batch_size=batch_size, verbose=2, shuffle=False) 
        model.reset_states() 
    # make predictions 
    trainPredict = model.predict(trainX, batch_size=batch_size) 
    model.reset_states() 
    testPredict = model.predict(testX, batch_size=batch_size) 
    
    +0

    ステートフルを使用すると、バッチサイズをどのように管理できますか? – Ghemon

    +0

    @Ghemon私の更新された答えを見てください。 –

    +0

    この場合、batch_sizeは1に等しくなりますが、私の問題には合わないと思います。どう思いますか? – Ghemon

    関連する問題