我有两个虚拟图像数据集,第一个数据集中有 3 个元素,第二个数据集中有 6 个元素。
像第一个数据集图像名称 = [1.png, 2.png, 3.png]
第二个数据集图像名称 = [1_1.png, 1_2.png, 2_1.png, 2_2.png, 3_1.png, 3_2.png]
我试图弄清楚,如何以这样的方式对这些数据集进行压缩,以映射这两个数据集,[1.png 必须与 1_1.png 和 1_2.png] 映射,而 [2.png 必须映射与 2_1.png 和 2_2.png] 等等。这可能吗?这是我试图实现的代码,但我真的不知道该怎么做。
代码
import os
import tensorflow as tf
X=tf.data.Dataset.list_files('D:/test/clear/*.png',shuffle=False)
Y=tf.data.Dataset.list_files('D:/test/haze/*.png',shuffle=False)
paired=tf.data.Dataset.zip((X,Y))
for x in paired:
print(x)
结果
(<tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\clear\\1.png'>, <tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\haze\\1_1.png'>)
(<tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\clear\\2.png'>, <tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\haze\\1_2.png'>)
我想要的结果
(<tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\clear\\1.png'>, <tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\haze\\1_1.png'>)
(<tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\clear\\1.png'>, <tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\haze\\1_2.png'>)
(<tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\clear\\2.png'>, <tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\haze\\2_1.png'>)
(<tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\clear\\2.png'>, <tf.Tensor: shape=(), dtype=string, numpy=b'D:\\test\\haze\\2_2.png'>)