我正在编写一个转换函数,该函数利用
Keras API中的
image_dataset_from_directory
函数。在文档中,它列出了返回值是 tf.data.Dataset
对象类型,但是在打印该类型时,它返回为 list
类型。
在使用
as_numpy_iterator()
函数时,当它应该将 Dataset 对象转换为 numpy 数组时,它会抛出 AttributeError: 'list' object has no attribute 'as_numpy_iterator'
。此后,我确保满足 as_numpy_iterator()
的运行条件,即 TensorFlow 需要以 eager 模式运行(在所有 2.x 版本中默认启用),并且数据集的元素规范为 TensorSpec(它是)。我发现一个 GitHub 问题页面指出了类似的内容,但尚未解决。
下面是我定义的函数和参数(我正在使用一定数量的图像来测试我的模型,并且还不想将其拆分为子目录,因此
NoneType
和 labels
参数):label_mode
img_gen = img_utils.image_dataset_from_directory(
directory,
labels=None,
label_mode=None,
shuffle=True,
seed=123,
validation_split=0.2,
subset="both",
interpolation="bilinear",
data_format=None,
verbose=True,
)
函数返回一个
image_dataset_from_directory
对象
当 tf.data.Dataset
参数设置为 labels
时。然而,在代码中,
用于标签的值为 None。请参阅image_dataset_from_directory