0

我有一个具有以下结构的熊猫数据框:

小路 句子 演讲 输入值 标签
音频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.Datasettorch.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)但它无法转换它,因为我有带有二维数组的列,它显然只能转换一维数组值。

4

0 回答 0