【发布时间】:2019-12-20 23:01:14
【问题描述】:
我正在尝试构建一个(非常简单的)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 作为输入。只是一个理论,但我不知道如何解决这个问题以自己检查。
【问题讨论】:
标签: python arrays tensorflow keras