Pep*_*e95 17 python dataset nlp-question-answering deep-learning pytorch
我正在尝试构建一个 datasetDictionary 对象来在 PyTorch 上训练 QA 模型。我有这两个不同的数据集:
test_dataset
Dataset({
features: ['answer_text', 'answer_start', 'title', 'context', 'question', 'answers', 'id'],
num_rows: 21489
})
Run Code Online (Sandbox Code Playgroud)
和
train_dataset
Dataset({
features: ['answer_text', 'answer_start', 'title', 'context', 'question', 'answers', 'id'],
num_rows: 54159
})
Run Code Online (Sandbox Code Playgroud)
在数据集的文档中我没有找到任何内容。我是个菜鸟,因此解决方案可能非常简单。我希望获得的是这样的:
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
})
})
Run Code Online (Sandbox Code Playgroud)
我真的不知道如何使用两个数据集来创建 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
})
})
Run Code Online (Sandbox Code Playgroud)
预先感谢您,请原谅我是个菜鸟:)
小智 21
要获取验证数据集,您可以这样做:
train_dataset, validation_dataset= train_dataset.train_test_split(test_size=0.1).values()
Run Code Online (Sandbox Code Playgroud)
该函数会将训练数据集的 10% 划分为验证数据集。
要获取“DatasetDict”,您可以这样做:
import datasets
dd = datasets.DatasetDict({"train":train_dataset,"test":test_dataset})
Run Code Online (Sandbox Code Playgroud)
Sah*_*lis 12
对于后代;)添加更多有关答案的信息。
from datasets.dataset_dict import DatasetDict
from datasets import Dataset
d = {'train':Dataset.from_dict({'label':y_train,'text':x_train}),
'val':Dataset.from_dict({'label':y_val,'text':x_val}),
'test':Dataset.from_dict({'label':y_test,'text':x_test})
}
DatasetDict(d)
Run Code Online (Sandbox Code Playgroud)