【发布时间】:2017-10-28 13:09:58
【问题描述】:
我正在使用数据集 API list_files 来获取 source 目录和 target 目录中的文件列表,类似于:
source_path = '/tmp/data/source/*.ext1'
target_path = '/tmp/data/target/*.ext2'
source_dataset = tf.data.Dataset.list_files(source_path)
target_dataset = tf.data.Dataset.list_files(data_path)
dataset = tf.data.Dataset.zip((source_dataset, target_dataset))
源和目标目录内容具有相同的顺序文件名,但扩展名不同(例如,源 0001.ext1 目标 0001.ext2)。
但由于 list_files 无论如何都没有排序,因此压缩数据集包含源和目标之间的不匹配。
如何在新的数据集 API 中解决这个问题?
【问题讨论】:
-
自 2017 年 10 月起,数据集不支持排序。但是,由于文件不多,您可以在 python 中构建文件名对的排序列表,并从该列表中的张量创建数据集。
-
# 根据文档 |注意:此方法的默认行为是以不确定的随机打乱顺序返回文件名。传递种子或 shuffle=False 以获得确定顺序的结果。 |因此,您可以为源数据集和目标数据集尝试相同的种子值,并检查它是否有效。
标签: tensorflow tensorflow-datasets