首页 > 解决方案 > 如何处理这些数据集以创建 datasetDict?

问题描述

我正在尝试构建一个 datasetDictionary 对象来在 PyTorch 上训练一个 QA 模型。我有这两个不同的数据集:

test_dataset

Dataset({
    features: ['answer_text', 'answer_start', 'title', 'context', 'question', 'answers', 'id'],
    num_rows: 21489
})

train_dataset

Dataset({
    features: ['answer_text', 'answer_start', 'title', 'context', 'question', 'answers', 'id'],
    num_rows: 54159
})

在数据集的文档中,我什么也没找到。我是个菜鸟,因此解决方案可能真的很简单。我希望得到的是这样的:

dataset

DatasetDict({
    train: Dataset({
        features: ['answer_text', 'answer_start', 'title', 'context', 'question', 'answers', 'id'],
        num_rows: 54159
    })
    test: Dataset({
        features: ['answer_text', 'answer_start', 'title', 'context', 'question', 'answers', 'id'],
        num_rows: 21489
    })
})

我真的不知道如何使用两个数据集来创建 dataserDict 或如何设置键。此外,我希望将训练集“切割”成两个:训练集和验证集,而且这段话我也很难处理。最终结果应该是这样的:

dataset

DatasetDict({
    train: Dataset({
        features: ['answer_text', 'answer_start', 'title', 'context', 'question', 'answers', 'id'],
        num_rows: 54159 - x
    })
    validation: Dataset({
        features: ['answer_text', 'answer_start', 'title', 'context', 'question', 'answers', 'id'],
        num_rows: x
    })
    test: Dataset({
        features: ['answer_text', 'answer_start', 'title', 'context', 'question', 'answers', 'id'],
        num_rows: 21489
    })
})

提前谢谢你,请原谅我是个菜鸟:)

标签: pythondeep-learningpytorchdatasetquestion-answering

解决方案


要获取验证数据集,您可以这样做:

train_dataset, validation_dataset= train_dataset.train_test_split(test_size=0.1).values()

该函数会将 10% 的训练数据集划分为验证数据集。

并获得“DatasetDict”,你可以这样做:

import datasets
dd = datasets.DatasetDict({"train":train_dataset,"test":test_dataset})

推荐阅读