【问题标题】:Keras - Number of samples error with multidimensional inputKeras - 多维输入的样本数错误
【发布时间】: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


    【解决方案1】:

    该错误确实是由于生成/加载数据的方式造成的;如果您在具有指定形状的随机张量上训练模型,则不会出现错误。

    【讨论】:

    • 感谢您的信息,我将研究加载数据集的最佳方式。
    猜你喜欢
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2019-01-21
    • 2022-12-10
    • 2017-03-31
    • 1970-01-01
    • 2021-06-20
    • 2023-03-10
    相关资源
    最近更新 更多