はい - これは可能ですが、本当に厄介です。例を見てみましょう。
from keras.layers import LSTM, Input
from keras.models import Model
input = Input(batch_shape=(32, 10, 1))
lstm_layer = LSTM(10, stateful=True)(input)
model = Model(input, lstm_layer)
model.compile(optimizer="adam", loss="mse")
それは初期状態にリセットされ、コンパイルのように最初のモデルを構築し、コンパイルすることが重要です:
モデルを定義します。 。
import numpy
import keras.backend as K
hidden_states = K.variable(value=numpy.random.normal(size=(32, 10)))
cell_states = K.variable(value=numpy.random.normal(size=(32, 10)))
model.layers[1].states[0] = hidden_states
model.layers[1].states[1] = cell_states
: - また、あなたは今、私たちは、初期状態の値を設定することができbatch_size
が私たちのネットワークがstateful=True
モードを設定することによって行われるstateful
(
である必要があり、このシナリオのように指定されているbatch_shape
を指定する必要がありますあなたはkeras
変数として状態を提供する必要が
注意。states[0]
は隠れ状態を保持し、states[1]
は、細胞の状態を保持している。
希望に役立ちます。
最初の非表示状態を設定したい場合、コードはmodel.layers [1] .states [0] [0] = h_0 – bicepjai