我有一个具有以下结构的熊猫数据框:
小路 | 句子 | 演讲 | 输入值 | 标签 |
---|---|---|---|---|
音频1.mp3 | 这是第一个音频 | [[0.0, 0.0, 0.0, ..., 0.0, 0.0]] | [[0.00005, ..., 0.0003]] | [23, 4, 6, 11, ..., 12 |
音频2.mp3 | 这是第二个音频 | [[0.0, 0.0, 0.0, ..., 0.0, 0.0]] | [[0.000044, ..., 0.00033]] | [23, 4, 6, 11, ..., 12 |
句子是音频的转录,语音列是音频的数组表示,标签是基于定义的词汇表的句子每个字母的数字表示。
我正在微调一个预训练的 ASR 模型,但是当我尝试将 pandas 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 分别是我的训练和验证数据框。我只是拆分了我的主要数据框(80/20)。如何将我的 pandas 数据帧转换为所需的数据集类型?我尝试将data_collator
类定义定制为 pandas df,但可以预见的是,这也不起作用。我假设data_collator
当您调用.train()
培训师时,火车和评估数据集都调用了课程?
编辑:我尝试使用Dataset.from_pandas(ds_train)
但它无法转换它,因为我有带有二维数组的列,它显然只能转换一维数组值。