gpt4 book ai didi

matrix - 使用 Keras 了解 LSTM 中的 input_shape 参数

转载 作者:行者123 更新时间:2023-11-30 09:00:08 24 4
gpt4 key购买 nike

我正在尝试使用 the example described in the Keras documentation名为“用于序列分类的堆叠 LSTM”(请参阅​​下面的代码),并且无法在我的数据上下文中找出 input_shape 参数。

我有一个由 25 个可能字符组成的序列矩阵作为输入,这些字符以整数编码为最大长度为 31 的填充序列。因此,我的 x_train 的形状为 (1085420, 31 ) 意思是(n_observations,sequence_length)

from keras.models import Sequential
from keras.layers import LSTM, Dense
import numpy as np

data_dim = 16
timesteps = 8
num_classes = 10

# expected input data shape: (batch_size, timesteps, data_dim)
model = Sequential()
model.add(LSTM(32, return_sequences=True,
input_shape=(timesteps, data_dim))) # returns a sequence of vectors of dimension 32
model.add(LSTM(32, return_sequences=True)) # returns a sequence of vectors of dimension 32
model.add(LSTM(32)) # return a single vector of dimension 32
model.add(Dense(10, activation='softmax'))

model.compile(loss='categorical_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])

# Generate dummy training data
x_train = np.random.random((1000, timesteps, data_dim))
y_train = np.random.random((1000, num_classes))

# Generate dummy validation data
x_val = np.random.random((100, timesteps, data_dim))
y_val = np.random.random((100, num_classes))

model.fit(x_train, y_train,
batch_size=64, epochs=5,
validation_data=(x_val, y_val))

在此代码中,x_train 的形状为 (1000, 8, 16),就像一个由 1000 个数组组成的数组,每个数组由 8 个数组组成,每个数组有 16 个元素。在那里,我完全不知道什么是什么以及我的数据如何达到这种形状。

查看 Keras 文档以及各种教程和问答,我似乎遗漏了一些明显的东西。有人可以告诉我要寻找什么吗?

感谢您的帮助!

最佳答案

因此输入到LSTM的数据应该具有形状(nb_of_samples, seq_len, features)。在您的情况下 - 由于您的特征向量仅包含一个整数 - 您应该调整 X_train 的大小,使其形状应为 (1085420, 31, 1)。由于这种表示形式不太适合神经网络 - 您应该:

  1. 将您的表示更改为 one-hot 编码 - 那么您的输出应具有形状 (1085420, 31, 25)

  2. 使用Embedding分层并保留 (1085420, 31) 形状。

关于matrix - 使用 Keras 了解 LSTM 中的 input_shape 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43487828/

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