拆分火炬数据集而不进行改组

Poo*_*shi 2 python transformer-model torch pytorch pytorch-dataloader

我用来Pytorch运行 Transformer 模型。当我想分割数据(标记化数据)时,我使用以下代码:

train_dataset, test_dataset = torch.utils.data.random_split(
                                                            tokenized_datasets,
                                                            [train_size, test_size])
Run Code Online (Sandbox Code Playgroud)

torch.utils.data.random_split使用洗牌方法,但我不想洗牌。我想按顺序分割它。

有什么建议吗?谢谢

小智 13

random_split方法没有参数可以帮助您创建非随机顺序分割。

实现顺序分割的最简单方法是直接传递要创建的子集的索引:

# Created using indices from 0 to train_size.
train_dataset = torch.utils.data.Subset(tokenized_datasets, range(train_size))

# Created using indices from train_size to train_size + test_size.
test_dataset = torch.utils.data.Subset(tokenized_datasets, range(train_size, train_size + test_size))
Run Code Online (Sandbox Code Playgroud)

请参阅:PyTorch 文档