在TFDS中已返回file_path,加载数据集时如何获取该文件路径?
获取TFDS数据集样本对应的文件路径
你在_generate_examples中返回的file_path是作为**样本的唯一标识(key)**存在的,但TFDS默认加载时会丢弃这个key,只返回样本的特征字典。要获取这些文件路径,需要在加载时配置保留key,再遍历提取:
步骤1:加载数据集时开启保留key的配置
通过tfds.ReadConfig设置add_key=True,让TFDS返回包含key的样本元组:
import tensorflow_datasets as tfds # 配置读取规则,保留样本的key(即你返回的file_path) read_config = tfds.ReadConfig(add_key=True) # 加载数据集并传入配置 data = tfds.load('dataset', read_config=read_config)
步骤2:遍历数据集提取文件路径
加载后的数据集每个元素是(key, example_dict)的元组,其中key就是你在_generate_examples中返回的file_path。由于TFDS会将字符串key转为tf.string类型的张量,需要解码为Python字符串:
# 假设数据集包含train拆分,根据实际拆分名称调整 train_dataset = data['train'] # 遍历打印所有文件路径 for key, sample in train_dataset: # 将张量转为Python字符串 file_path = key.numpy().decode('utf-8') print(file_path)
简化处理:用tfds.as_numpy直接获取Python类型
如果不想手动处理张量解码,可以用tfds.as_numpy将数据集转为numpy类型的迭代器:
for key, sample in tfds.as_numpy(train_dataset): print(key.decode('utf-8'))
内容的提问来源于stack exchange,提问作者Ahmad Anis
相关产品推荐
相关产品推荐

