输入形状和Keras

时间:2019-01-03 19:26:49

标签: python machine-learning keras training-data keras-layer

我有一组训练数据,其中每个输入都是长度为138的向量。我有519个向量,批处理大小为519。这些不是图像,只是实数值。

我正在尝试从2层密集的Keras模型开始:

model = keras.Sequential([
    layers.Dense(200, activation=tf.nn.relu, input_shape=[138]),
    layers.Dense(200, activation=tf.nn.relu),
    layers.Dense(1)
])

建立模型时,出现以下错误:

Error when checking input: expected dense_27_input to have shape (138,) but got array with shape (519,).

我在Keras的哪里将批处理大小与输入要素的数量区分开? layers.Dense()似乎假设我的输入是按行还是按列。

1 个答案:

答案 0 :(得分:0)

Keras希望第一个轴为批处理轴。因此,如果您有519个训练样本,每个样本都是一个长度为138的向量,则传递给fit方法的数组必须具有(519, 138)的形状。因此,如果当前训练数据数组的形状为(138, 519),只需对其进行转置以使其形状一致:

import numpy as np

train_data = np.transpose(train_data)