Keras 中的 TypeError:即使已经提供了 shuffle="batch",也会传递 shuffle="batch"

TypeError in Keras: pass shuffle="batch" even when shuffle="batch" is already provided

我正在尝试使用 tf.keras 的 fit() 方法来训练我的模型,因为输入数据来自 hdf5 文件,我正在传递参数 shuffle='batch'fit() 方法。但是在第一个纪元结束后,出现以下错误:

TypeError: TypeError while preparing batch. If using HDF5 input data, pass shuffle="batch".

这是我的 fit() 方法:

model.fit(
    x=features_train,
    y=topics_train,
    batch_size=16384,
    epochs=35,
    callbacks=create_callbacks(),
    validation_data=(features_val, topics_val),
    shuffle='batch'
)

变量features_trainfeatures_val取自hdf5文件。

通过将 features_val 转换为 numpy 数组解决了这个问题。

features_val_arr = np.array(features_val)

model.fit(
    x=features_train,
    y=topics_train,
    batch_size=16384,
    epochs=35,
    callbacks=create_callbacks(),
    validation_data=(features_val_arr, topics_val),
    shuffle='batch'
)