我有一个Pandas数据框架,结构如下:
| 路径|判决书|言语|输入值|标示|
| - -|- -|- -|- -|- -|
| audio1.mp3 |这是第一个音频|0.0,0.0,0.0,...,0.0,0.0|【【0.00005,...,0.0003】】|[第二十三、四、六、十一、......、十二|
| audio2.mp3 |这是第二个音频|0.0,0.0,0.0,...,0.0,0.0|【【0.000044,......,0.00033】】|[第二十三、四、六、十一、......、十二|
句子是音频的转录,语音列是音频的数组表示,而标签是基于定义的词汇表的句子的每个字母的数字表示。
我正在微调一个预先训练好的ASR模型,但是当我尝试将pands df传递给Trainer类并在其上调用.train()
时,它会出错(KeyError:0)。根据文档,它只接受torch.utils.data.Dataset
或torch.utils.data.IterableDataset
作为train_/eval_dataset参数。我的Trainer定义如下所示:
trainer = Trainer(
model=model,
data_collator=data_collator,
args=training_args,
compute_metrics=compute_metrics,
train_dataset=ds_train,
eval_dataset=ds_test,
tokenizer=processor.feature_extractor
)
ds_train和ds_test分别是我的训练和验证 Dataframe 。(80/20).我怎样才能把我的Pandas Dataframe 转换成所需的Dataset类型呢?我试着把data_collator
类定义修改成Pandasdf,但是可以预见的是也不起作用.我'我假设在训练器上调用.train()
时,train和eval数据集都调用data_collator
类?
EDIT:我尝试使用Dataset.from_pandas(ds_train)
,但它无法转换它,因为我有包含二维数组的列,而它显然只能转换一维数组值。
1条答案
按热度按时间31moq8wy1#
这取决于你如何使用你的
labels
列。我不知道你的教练如何使用这些数据,但我建议定义你自己的数据集类(https://pytorch.org/tutorials/beginner/basics/data_tutorial.html#creating-a-custom-dataset-for-your-files)