Tensorflow Dataset API 如何排序 list_files?

标签 tensorflow tensorflow-datasets

我正在使用数据集 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 中解决这个问题?

最佳答案

此方法的默认行为是以不确定的随机打乱顺序返回文件名。传递种子或 shuffle=False 以获得确定顺序的结果。

source_dataset = tf.data.Dataset.list_files(source_path, shuffle=False)

val = 5
source_dataset = tf.data.Dataset.list_files(source_path, seed = val)
target_dataset = tf.data.Dataset.list_files(data_path, seed = val)

关于Tensorflow Dataset API 如何排序 list_files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46990088/

相关文章:

python - 多个Conv1D层: Negative dimension size caused by subtracting 8 from 1 for 'conv1d_2/convolution/Conv2D

machine-learning - 使用 docker 容器时,keras 将其数据集存储在哪里?

python - Tensorflow csv 数据集使用

python - 如何将张量转换为字符串

deep-learning - tensorflow 服务 : Using a fraction of GPU memory for each model

Tensorflow Relu 误区

python - 尝试输入大数据帧时 Tensorflow 数据集 API 内存错误

tensorflow - 将 Keras model.fit 的 `steps_per_epoch` 与 TensorFlow 的 Dataset API 的 `batch()` 相结合

tensorflow - TFLite interpreter.get_input_details 中的 'index' 指的是什么?

python - 按类别过滤 Tensorflow 数据集