torchtext.datasets¶
警告
torchtext 支持的数据集是来自 torchdata 项目 的 datapipes,该项目仍处于 Beta 阶段。这意味着 API 可能在没有弃用周期的情况下发生变化。特别是,我们预计当前的许多惯用法将在 DataLoaderV2 从 torchdata 发布时发生变化。
以下是一些关于使用数据管道的建议:
对于打乱数据管道,可以在DataLoader中进行:
DataLoader(dp, shuffle=True)。 您不需要调用dp.shuffle(),因为torchtext已经为您完成了。 请注意,除非您明确将shuffle=True传递给DataLoader,否则数据管道不会被打乱。当使用多进程 (
num_workers=N) 时,使用内置的worker_init_fn:from torch.utils.data.backward_compatibility import worker_init_fn DataLoader(dp, num_workers=4, worker_init_fn=worker_init_fn, drop_last=True)
这将确保数据不会在各个工作者间重复。
我们也建议使用
drop_last=True。如果没有这样做,在某些情况下,一个epoch结束时的批次大小可能会非常小(比其他map-style数据集更小)。这可能对准确性产生重大影响,特别是在使用批归一化时。drop_last=True确保所有的批次大小都相等。使用
DistributedDataParallel进行分布式训练目前尚不完全稳定/支持,我们不建议在此阶段使用。在DataLoaderV2中将有更好的支持。如果您仍希望使用DDP,请确保:所有工作者(DDP 工作者和 DataLoader 工作者)看到的数据部分不同。数据集已经被包裹在 ShardingFilter 内,您可能需要调用
dp.apply_sharding(num_shards, shard_id)来跨等级(DDP 工作者)和 DataLoader 工作者分片数据。一种实现方法是创建一个worker_init_fn,它调用apply_sharding并传入适当的分片数量(DDP 工作者 * DataLoader 工作者)和分片 ID(通过相应的 DataLoader 的等级和工作者 ID 推断)。请注意,这假设所有等级具有相等数量的 DataLoader 工作者。所有DDP工作者处理相同数量的批次。一种实现方法是在每个工作者中将数据管道的大小限制为
len(datapipe) // num_ddp_workers,但这可能并不适用于所有用例。洗牌种子在所有工作者之间是相同的。您可能需要调用
torch.utils.data.graph_settings.apply_shuffle_seed(dp, rng)每个时期的洗牌种子都不同。
RNG 的其余部分(通常用于转换)在各个工作者间是 不同的,以实现最大熵和最佳准确性。
一般用例如下:
# import datasets
from torchtext.datasets import IMDB
train_iter = IMDB(split='train')
def tokenize(label, line):
return line.split()
tokens = []
for label, line in train_iter:
tokens += tokenize(label, line)
当前可用的数据集如下。如果您想为仓库贡献新的数据集或使用您自己的自定义数据集,请参阅CONTRIBUTING_DATASETS.md指南。
文本分类¶
AG_NEWS¶
AmazonReviewFull¶
AmazonReviewPolarity¶
CoLA¶
- torchtext.datasets.CoLA(root: str = '.data', split: Union[Tuple[str], str] = ('train', 'dev', 'test'))[source]¶
CoLA 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
有关更多详细信息,请参阅 https://nyu-mll.github.io/CoLA/
- Number of lines per split:
训练:8551
待翻译文本似乎不完整,仅包含“dev: 527”。请提供完整的待翻译文本以便我进行准确翻译。
测试:516
DBpedia¶
IMDb¶
- torchtext.datasets.IMDB(root: str = '.data', split: Union[Tuple[str], str] = ('train', 'test'))[source]¶
IMDb 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅http://ai.stanford.edu/~amaas/data/sentiment/
- Number of lines per split:
训练:25000
测试:25000
- Parameters:
根目录 – 数据集保存的目录。默认值:os.path.expanduser(‘~/.torchtext/cache’)
分割 – 返回的分割或分割列表。可以是字符串或字符串元组。默认值:(train, test)
- Returns:
生成包含电影评论文本和标签(1到2)的元组的数据管道
- Return type:
- Tutorials using
IMDB:
MNLI¶
- torchtext.datasets.MNLI(root='.data', split=('train', 'dev_matched', 'dev_mismatched'))[source]¶
多领域自然语言推理数据集 (MNLI)
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅 https://cims.nyu.edu/~sbowman/multinli/
- Number of lines per split:
训练:392702
dev_matched: 9815
dev_mismatched: 9832
MRPC¶
QNLI¶
- torchtext.datasets.QNLI(root='.data', split=('train', 'dev', 'test'))[source]¶
QNLI 数据集
欲了解更多信息,请参阅https://arxiv.org/pdf/1804.07461.pdf (来自GLUE论文)
- Number of lines per split:
训练:104743
开发版:5463
测试:5463
QQP¶
- torchtext.datasets.QQP(root: str)[source]¶
QQP 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
有关更多详细信息,请参阅 https://quoradata.quora.com/First-Quora-Dataset-Release-Question-Pairs
RTE¶
- torchtext.datasets.RTE(root='.data', split=('train', 'dev', 'test'))[source]¶
自然语言推理数据集
欲了解更多信息,请参阅 https://aclweb.org/aclwiki/Recognizing_Textual_Entailment
- Number of lines per split:
训练:67349
开发版:872
测试:1821
SogouNews¶
- torchtext.datasets.SogouNews(root: str = '.data', split: Union[Tuple[str], str] = ('train', 'test'))[source]¶
搜狗新闻数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅 https://arxiv.org/abs/1509.01626
- Number of lines per split:
train: 450000
test: 60000
- Args:
root: Directory where the datasets are saved. Default: os.path.expanduser(‘~/.torchtext/cache’) split: split or splits to be returned. Can be a string or tuple of strings. Default: (train, test)
- returns:
DataPipe that yields tuple of label (1 to 5) and text containing the news title and contents
- rtype:
(int, str)
SST2¶
- torchtext.datasets.SST2(root='.data', split=('train', 'dev', 'test'))[source]¶
SST-2 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅 https://nlp.stanford.edu/sentiment/
- Number of lines per split:
训练:67349
开发版:872
测试:1821
- Parameters:
根目录 – 数据集保存的目录。默认值:os.path.expanduser(‘~/.torchtext/cache’)
分割 – 返回的分割或分割列表。可以是字符串或字符串元组。默认值:(train, dev, test)
- Returns:
数据管道,生成包含文本和/或标签(1到4个)的元组。第test部分只返回文本。
- Return type:
- Tutorials using
SST2:
STSB¶
- torchtext.datasets.STSB(root='.data', split=('train', 'dev', 'test'))[source]¶
STS-B 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
有关更多详细信息,请参阅 https://ixa2.si.ehu.eus/stswiki/index.php/STSbenchmark
- Number of lines per split:
训练:5749
开发版:1500
测试:1379
WNLI¶
- torchtext.datasets.WNLI(root='.data', split=('train', 'dev', 'test'))[source]¶
WNLI 数据集
欲了解更多信息,请参阅 https://arxiv.org/pdf/1804.07461v3.pdf
- Number of lines per split:
训练:635
开发版:71
测试:146
YahooAnswers¶
YelpReviewFull¶
YelpReviewPolarity¶
语言建模¶
PennTreebank¶
- torchtext.datasets.PennTreebank(root='.data', split: Union[Tuple[str], str] = ('train', 'valid', 'test'))[source]¶
PennTreebank 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅 https://catalog.ldc.upenn.edu/docs/LDC95T7/cl93.html
- Number of lines per split:
训练:42068
有效:3370
测试:3761
- Parameters:
根目录 – 数据集保存的目录。默认值:os.path.expanduser(‘~/.torchtext/cache’)
分割 – 返回的分割或分割列表。可以是字符串或字符串元组。默认值:(train, valid, test)
- Returns:
从Treebank语料库生成文本的数据管道
- Return type:
WikiText-2¶
- torchtext.datasets.WikiText2(root: str = '.data', split: Union[Tuple[str], str] = ('train', 'valid', 'test'))[source]¶
WikiText2 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅https://blog.salesforceairesearch.com/the-wikitext-long-term-dependency-language-modeling-dataset/
- Number of lines per split:
训练:36718
有效的:3760
测试:4358
- Parameters:
根目录 – 数据集保存的目录。默认值:os.path.expanduser(‘~/.torchtext/cache’)
分割 – 返回的分割或分割列表。可以是字符串或字符串元组。默认值:(train, valid, test)
- Returns:
从维基百科文章中生成文本的 DataPipe
- Return type:
WikiText103¶
- torchtext.datasets.WikiText103(root: str = '.data', split: Union[Tuple[str], str] = ('train', 'valid', 'test'))[source]¶
WikiText103 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅https://blog.salesforceairesearch.com/the-wikitext-long-term-dependency-language-modeling-dataset/
- Number of lines per split:
训练:1801350
有效的:3760
测试:4358
- Parameters:
根目录 – 数据集保存的目录。默认值:os.path.expanduser(‘~/.torchtext/cache’)
分割 – 返回的分割或分割列表。可以是字符串或字符串元组。默认值:(train, valid, test)
- Returns:
从维基百科文章中生成文本的 DataPipe
- Return type:
机器翻译¶
IWSLT2016¶
- torchtext.datasets.IWSLT2016(root='.data', split=('train', 'valid', 'test'), language_pair=('de', 'en'), valid_set='tst2013', test_set='tst2014')[source]¶
IWSLT2016 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
有关更多详细信息,请参阅 https://wit3.fbk.eu/2016-01
可用的数据集包括以下内容:
语言对:
“en”
“fr”
“de”
“cs”
“ar”
“en”
x
x
x
x
“fr”
x
“de”
x
“cs”
x
“ar”
x
验证/测试集: [“dev2010”,“tst2010”,“tst2011”,“tst2012”,“tst2013”,“tst2014”]
- Parameters:
根目录 – 数据集保存的目录。默认值:os.path.expanduser(‘~/.torchtext/cache’)
拆分 – 返回的拆分或拆分数组。可以是字符串或字符串元组。默认值:('训练', '验证', '测试')
语言对 – 包含源语言和目标语言的元组或列表
valid_set – 用于标识验证集的字符串。
测试集 – 用于标识测试集的字符串。
- Returns:
生成源句子和目标句子元组的数据管道
- Return type:
示例
>>> from torchtext.datasets import IWSLT2016 >>> train_iter, valid_iter, test_iter = IWSLT2016() >>> src_sentence, tgt_sentence = next(iter(train_iter))
IWSLT2017¶
- torchtext.datasets.IWSLT2017(root='.data', split=('train', 'valid', 'test'), language_pair=('de', 'en'))[source]¶
IWSLT2017 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
有关更多详细信息,请参阅 https://wit3.fbk.eu/2017-01
可用的数据集包括以下内容:
语言对:
“en”
“nl”
“de”
“it”
“ro”
“en”
x
x
x
x
“nl”
x
x
x
x
“de”
x
x
x
x
“it”
x
x
x
x
“ro”
x
x
x
x
- Parameters:
根目录 – 数据集保存的目录。默认值:os.path.expanduser(‘~/.torchtext/cache’)
拆分 – 返回的拆分或拆分数组。可以是字符串或字符串元组。默认值:('训练', '验证', '测试')
语言对 – 包含源语言和目标语言的元组或列表
- Returns:
生成源句子和目标句子元组的数据管道
- Return type:
示例
>>> from torchtext.datasets import IWSLT2017 >>> train_iter, valid_iter, test_iter = IWSLT2017() >>> src_sentence, tgt_sentence = next(iter(train_iter))
多语种30千¶
- torchtext.datasets.Multi30k(root: str = '.data', split: Union[Tuple[str], str] = ('train', 'valid', 'test'), language_pair: Tuple[str] = ('de', 'en'))[source]¶
Multi30k 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅https://www.statmt.org/wmt16/multimodal-task.html#task1
- Number of lines per split:
训练:29000
有效的:1014
测试:1000
- Parameters:
根目录 – 数据集保存的目录。默认值:os.path.expanduser(‘~/.torchtext/cache’)
拆分 – 返回的拆分或拆分数组。可以是字符串或字符串元组。默认值:('训练', '验证', '测试')
语言对 – 包含源语言和目标语言的元组或列表。可用选项为(‘de’,’en’)和(‘en’, ‘de’)
- Returns:
生成源句子和目标句子元组的数据管道
- Return type:
- Tutorials using
Multi30k:
序列标注¶
CoNLL2000Chunking¶
- torchtext.datasets.CoNLL2000Chunking(root: str = '.data', split: Union[Tuple[str], str] = ('train', 'test'))[source]¶
CoNLL2000 分块数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅 https://www.clips.uantwerpen.be/conll2000/chunking/
- Number of lines per split:
训练:8936
测试:2012
UDPOS¶
问题 答案¶
SQuAD 1.0¶
SQuAD 2.0¶
无监督学习¶
CC100¶
EnWik9¶
- torchtext.datasets.EnWik9(root: str)[source]¶
EnWik9 数据集
警告
使用datapipes目前仍有一些注意事项。如果您希望使用此数据集进行洗牌、多进程或分布式学习,请参阅此说明以获取进一步的指示。
欲了解更多信息,请参阅 http://mattmahoney.net/dc/textdata.html
数据集中的行数:13147026
- Parameters:
根目录 – 数据集保存的目录。默认值:os.path.expanduser(‘~/.torchtext/cache’)
- Returns:
从WnWik9数据集中生成原始文本行的数据管道
- Return type: