gpt4 book ai didi

python - 如何创建多维矩阵作为神经网络的输入?

转载 作者:行者123 更新时间:2023-12-03 20:55:11 25 4
gpt4 key购买 nike

我正在尝试创建一个具有多维输入矩阵的神经网络。输入的大小可以是 2x7、8x7 或任何具有 7 列的此类维度。 (此输入用于下面所示的 for 循环结构)

我的问题是,如何创建一个训练 DataFrame,它可以包含多个具有不同维度的矩阵来为神经网络提供数据?我尝试为每个矩阵在 for 循环上训练模型,但应该有一些更合适的方法来创建这样的数据集。

注意:我正在尝试获得具有所有这些不同维度矩阵的单个输入,并且可以轻松映射到它们各自的输出。所以输入应该看起来像 (a, b, 7) 其中 a 是具有不同行长的矩阵的数据点数,b 是行数该特定矩阵和 7 是所有矩阵中的列数。

数据是用户按时间创建的时间序列数据的示例。所以我需要保持每行单个矩阵的顺序。下次用户创建新行时将生成输出。请理解,这个问题的重点不是模型,而是如何为模型表示这些数据。

这是我的模型的代码:

model.add(Lambda(lambda x: tf.expand_dims(x, axis=1), input_shape=[7]))
model.add(Dense(2048, activation='tanh'))
model.add(Dense(1024, activation='tanh'))
model.add(Dense(512, activation='tanh'))
model.add(Dense(216, activation='tanh'))
model.add(Flatten())
model.add(Dense(128, activation='tanh'))
model.add(Dense(7, activation='tanh'))
model.summary()

我的循环拟合模型如下所示:

for user_id in user_ids:
df = dailytable[dailytable['user_id']==user_id]
if df.shape[0] > 3:
X = df.iloc[:-1, :]
Y = df.iloc[-1, :]
Y = tf.reshape(Y, (1, 7))
if len(X.axes[0].tolist()) > 3:
model.fit(X, Y, epochs=5, steps_per_epoch=1)

我想创建一些包含我所有矩阵的数据结构。它看起来像一个 3 维矩阵。如上所述,所有这些矩阵都具有不同的输入形状。但具有相同的输出,即 1x7。我不想使用循环结构,而是想在训练开始时传递单个输入。

最佳答案

对任何时间序列建模都存在同样的问题。你应该看看 CNN 或 RNN,因为它们承认可变维度。在 CNN 的情况下,您可以有一个具有 7 个 channel 和可变长度的输入。

对于全连接层,您有一个固定形状的输入。因此,您要么应用零填充来满足已经建议的最大尺寸,要么将窗口移位信号用作输入(CNN 就是这样做的)。

关于python - 如何创建多维矩阵作为神经网络的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61182539/

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