我有一组训练数据,其中每个输入都是长度为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()
似乎假设我的输入是按行还是按列。
答案 0 :(得分:0)
Keras希望第一个轴为批处理轴。因此,如果您有519个训练样本,每个样本都是一个长度为138的向量,则传递给fit
方法的数组必须具有(519, 138)
的形状。因此,如果当前训练数据数组的形状为(138, 519)
,只需对其进行转置以使其形状一致:
import numpy as np
train_data = np.transpose(train_data)