我正在尝试构建一个(非常简单的)Keras模型作为项目的基准。我有一个3459个形状为(2、6、15)的numpy数组的列表作为输入,还有一个目标值列表(整数为形状为()的numpy数组)。当我尝试训练模型时,出现此错误:
“” ValueError:样本数量2小于指定的batch_size 32和步骤108所需的样本。“
到目前为止,该模型非常简单,但我无法运用于培训:
input = Input(shape=(2, 6, 15))
x = Dense(64, activation='relu')(input)
x = Dense(64, activation='relu')(x)
output = Dense(1)(x)
model = Model(inputs=input, outputs=output)
model.compile(optimizer='adam', loss='mean_squared_error',
metrics=['accuracy'])
hist = model.fit(
X_train,
y_train,
batch_size=32,
epochs=10,
validation_data=(X_test, y_test),
steps_per_epoch=(len(X_train) // 32),
validation_steps=(len(X_test) // 32))
我目前正在从pickle文件中加载数据,我怀疑问题可能出在个别培训案例的数组结构上。当查看X_train中的数组之一时,它的结构为[[[...] ...],[[...] ...]],我怀疑代码会将外括号弄混了,因为批处理容器,因此它将读取批量大小为2的输入。只是一个理论,但我不知道如何解决这个问题以检查自己。
错误确实是由于您的数据生成/加载方式所致;如果在具有指定形状的随机张量上训练模型,则没有错误。