Keras中的TypeError:即使已经提供了shuffle =“batch”,也要传递shuffle =“batch”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keras中的TypeError:即使已经提供了shuffle =“batch”,也要传递shuffle =“batch”相关的知识,希望对你有一定的参考价值。

我正在尝试使用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'
)

以上是关于Keras中的TypeError:即使已经提供了shuffle =“batch”,也要传递shuffle =“batch”的主要内容,如果未能解决你的问题,请参考以下文章

在Keras中使用VGG进行物体识别

使用自定义损失函数编译 Keras 模型时出现 TypeError

尝试在 Keras 中创建 BLSTM 网络时出现 TypeError

如何使用 keras 加载保存的模型? (错误: : TypeError: __init__() 得到了一个意外的关键字参数“可训练”)

keras.models load_model中的TypeError('关键字参数不理解:','组')

TypeError: __array__() 接受 1 个位置参数,但给出了 2 个(图像分类 Keras)