gpt4 book ai didi

python - 使用 Keras 构建 LSTM 单元

转载 作者:行者123 更新时间:2023-12-01 03:39:06 27 4
gpt4 key购买 nike

我正在尝试构建一个用于文本生成的 RNN。我一直在构建 LSTM 单元。数据的形状如下 - X 是维度为 dim(90809,2700) 的输入稀疏矩阵,Y 是维度为(90809,27) 的输出矩阵。以下是我定义 LSTM 单元的代码-

model = Sequential()
model.add(LSTM(128, input_shape=(X.shape[0], X.shape[1])))
model.add(Dropout(0.2))
model.add(Dense(Y.shape[1], activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')

我的理解是,input_shape应该是输入矩阵的维度,而密集层应该是每个观察的输出的大小,即本例中的27。但是,我收到以下错误 -

Exception: Error when checking model input: expected lstm_input_3 to have 3 dimensions, but got array with shape (90809, 2700)

我无法弄清楚出了什么问题。谁能帮我弄清楚为什么 lstm_input 需要 3 维?

我也尝试了以下方法-

X= np.reshape(np.asarray(dataX), (n_patterns, n_vocab*seq_length,1))
Y=np.reshape(np.asarray(dataY), (n_patterns, n_vocab,1))

这给了我以下错误-

Exception: Error when checking model input: expected lstm_input_7 to have shape (None, 90809, 2700) but got array with shape (90809, 2700, 1)

任何帮助将不胜感激。谢谢!

最佳答案

您应该了解 input_shapebatch_input_shapeinput_dim 之间的区别 here .

对于input_shape,我们不需要定义batch_size。这就是 LSTM 层的样子。

model.add(LSTM(128, input_shape=(X.shape[1], 1)))

model.add(LSTM(128, batch_input_shape=(X.shape[0], X.shape[1], 1)))

关于python - 使用 Keras 构建 LSTM 单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39950872/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com