如何将数据传递到 keras?

数据挖掘 Python 回归 张量流 喀拉斯
2021-10-14 08:48:45

我目前正在努力了解如何使用 keras 训练我的回归网络。我不确定我应该如何将输入数据传递到网络。

输入数据和输出数据都存储为 numpy 数组列表。

每个输入 numpy 数组是一个具有(400 行,x 列)的矩阵 每个输出 numpy 数组是一个具有(x 行,13 列)的矩阵

所以输入维度是 400,输出是 13。但是我如何将列表中的每个集合传递给训练?

# Multilayer Perceptron
model = Sequential()    # Feedforward
model.add(Dense(3, input_dim=400, output_dim=13))
model.add(Activation('tanh'))
model.add(Dense(1))
model.compile('sgd', 'mse')

我知道 model.fit 在给定参数的情况下训练模型,它实际上如何接收数据对我来说似乎有点像魔术,以及它如何知道矩阵 A 的列应该映射到矩阵 B 的行这必须是为整个矩阵完成,附加到列表中。

1个回答

如果您查看 Keras 文档,您会发现顺序模型的第一层需要所需的输入。例如,您的第一层是 Dense 层,输入维度为 400。因此每个输入应该是一个大小为 400 的 numpy 数组。您可以传递一个大小为 (x,400) 的 2D numpy 数组。(我假设 x 是输入示例的数量)。对于每个输出文档,您的输出有 13 个维度,因此您的最终密集层必须model.add(Dense(13))代替 model.add(Dense(1))。

谈到它是如何知道的,它将 X 的第一个维度作为训练示例的数量,将第二个维度作为每个示例的大小。对于输出层也是如此。