我已经获取了CelebA数据集,其中包含3个分区,如下所示
>>> celeba_bldr = tfds.builder('celeb_a')
>>> datasets = celeba_bldr.as_dataset()
>>> datasets.keys()
dict_keys(['test', 'train', 'validation'])
ds_train = datasets['train']
ds_test = datasets['test']
ds_valid = datasets['validation']
现在,我想将它们全部合并到一个数据集中。例如,我需要将训练和验证组合在一起,或者可能的话,将它们合并在一起,然后根据我自己的不同主题不相交标准将它们拆分。有办法做到这一点吗?
我在文档https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/data/Dataset中找不到任何选项来执行此操作
3条答案
按热度按时间iovurdzv1#
看看你链接的文档,dataset似乎有
concatenate
方法,所以我假设你可以得到一个联合数据集:参见:https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/data/Dataset#concatenate
lmyy7pcs2#
我还想提一下,如果你需要连接多个数据集(例如,数据集列表),你可以用一种更有效的方式来做:
你也可以使用
flat_map()
,但我认为使用interleave()
与并行调用更快。一般来说,interleave
是flat_map
的推广。5rgfhyps3#
如果数据集来自同一个TFDS数据集,您可以直接使用split API合并它们:
或者使用特殊的
all
分割:文件:https://www.tensorflow.org/datasets/splits