相关疑难解决方法(0)

在 Keras 中为具有不同隐藏大小和多个 LSTM 层的每个小批量设置隐藏状态

我使用 Keras 创建了一个 LSTM,并以 TensorFlow 作为后端。在 num_step 为 96 的小批量进行训练之前,LSTM 的隐藏状态被设置为前一个时间步的真实值。

首先是参数和数据:

batch_size = 10
num_steps = 96
num_input = num_output = 2
hidden_size = 8
X_train = np.array(X_train).reshape(-1, num_steps, num_input)
Y_train = np.array(Y_train).reshape(-1, num_steps, num_output)
X_test = np.array(X_test).reshape(-1, num_steps, num_input)
Y_test = np.array(Y_test).reshape(-1, num_steps, num_output)
Run Code Online (Sandbox Code Playgroud)

Keras 模型由两个 LSTM 层和一层将输出修剪为 num_output(即 2):

model = Sequential()
model.add(LSTM(hidden_size, batch_input_shape=((batch_size, num_steps, num_input)),
               return_sequences=True, stateful = True)))
model.add(LSTM(hidden_size, return_sequences=True)))
model.add(Dropout(0.2))
model.add(TimeDistributed(Dense(num_output, activation='softmax')))

model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

生成器以及训练(hidden_​​states[x] 的形状为 (2,)):

def gen_data():
        x = np.zeros((batch_size, num_steps, …
Run Code Online (Sandbox Code Playgroud)

python deep-learning lstm keras tensorflow

4
推荐指数
1
解决办法
1473
查看次数

标签 统计

deep-learning ×1

keras ×1

lstm ×1

python ×1

tensorflow ×1