模块“keras.api._v2.keras.layers”没有属性“LSTMStateTuple”

问题描述 投票:0回答:1

运行 LSTM 模型时,我被这段代码困住了 -

# Create cell state and hidden state variables to maintain the state of the LSTM
c, h = [], []
initial_state = []

for li in range(n_layers):
    c.append(tf.Variable(tf.zeros([batch_size, num_nodes[li]]), trainable=False))
    h.append(tf.Variable(tf.zeros([batch_size, num_nodes[li]]), trainable=False))
    initial_state.append(tf.keras.layers.LSTMStateTuple(c[li], h[li]))

# Do several tensor transformations, because the function dynamic_rnn requires the output to be of
# a specific format. Read more at: https://www.tensorflow.org/api_docs/python/tf/nn/dynamic_rnn

all_inputs = tf.concat([tf.expand_dims(t, 0) for t in train_inputs], axis=0)

# Create LSTM layer
lstm_layer = tf.keras.layers.LSTM(num_nodes[-1], return_sequences=True, return_state=True, dropout=dropout)

# Pass inputs and initial state to the LSTM layer
all_lstm_outputs, final_state, _ = lstm_layer(all_inputs, initial_state=initial_state)

all_outputs = tf.keras.layers.Dense(1)(all_lstm_outputs)

split_outputs = tf.split(all_outputs, num_unrollings, axis=0)```

I got this as the error - 

AttributeError:模块“keras.api._v2.keras.layers”没有属性“LSTMStateTuple”

python machine-learning deep-learning lstm
1个回答
0
投票

您无法使用

LSTMStateTuple
,因为:

LSTMStateTuple
NOT 位于
tf.keras.layers.LSTM
中,而是位于
compat.v1

tf.compat.v1.nn.rnn_cell.LSTMStateTuple

文档链接: https://www.tensorflow.org/api_docs/python/tf/compat/v1/nn/rnn_cell/LSTMStateTuple


tf.keras.layers.LSTM 是:

tf.keras.layers.LSTM(
    units,
    activation='tanh',
    recurrent_activation='sigmoid',
    use_bias=True,
    kernel_initializer='glorot_uniform',
    recurrent_initializer='orthogonal',
    bias_initializer='zeros',
    unit_forget_bias=True,
    kernel_regularizer=None,
    recurrent_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    kernel_constraint=None,
    recurrent_constraint=None,
    bias_constraint=None,
    dropout=0.0,
    recurrent_dropout=0.0,
    return_sequences=False,
    return_state=False,
    go_backwards=False,
    stateful=False,
    time_major=False,
    unroll=False,
    **kwargs
)

文档链接:https://www.tensorflow.org/api_docs/python/tf/keras/layers/LSTM

© www.soinside.com 2019 - 2024. All rights reserved.