如何为Hugging Face load_dataset方法正确配置features参数?
报错原因
你传入Features的类型声明为字符串格式的'str'、'ClassLabel',但datasets库要求Features接收的是对应类型的实例对象,而非字符串。
解决方案
方案1:加载时直接指定类型
需要先导入Value和ClassLabel两个类型类,按如下方式声明特征:
from datasets import Features, Value, ClassLabel from datasets import load_dataset # 将names参数替换为你实际的8个类别字符串,顺序可自定义,加载时会自动把csv中的字符串标签映射为0-7的整数 ft = Features( { "sequence": Value("string"), "label": ClassLabel(names=["类别1", "类别2", "类别3", "类别4", "类别5", "类别6", "类别7", "类别8"]) } ) mydataset = load_dataset("csv", data_files="mydata.csv", features=ft)
方案2:加载后转换标签类型
如果不想提前手动填写所有类别名,可以先默认加载数据集,再调用内置方法自动转换标签为ClassLabel类型:
from datasets import load_dataset # 先按默认格式加载数据集 mydataset = load_dataset("csv", data_files="mydata.csv") # 自动识别label列的所有唯一值,转换为ClassLabel类型 mydataset = mydataset.class_encode_column("label")
两种方案执行后都可以通过print(mydataset["train"].features)验证特征类型是否符合预期。
内容的提问来源于stack exchange,提问作者Adham
相关产品推荐
相关产品推荐

