【问题标题】:How to load data from csv with torchtext 0.12.0如何使用 torchtext 0.12.0 从 csv 加载数据
【发布时间】:2022-06-13 01:11:25
【问题描述】:

我正在尝试找出为 Torchtext 加载 csv 数据集的新方法,但找不到任何明确的解释。

给定一个包含两列的 csv:text, class,我能找到的所有关于 torchtext 加载数据的教程都是这样的:

tokenizer = lambda x: re.sub(r"[^a-zA-Z ]", "", x).split()

text = Field(sequential = True, use_vocab = True, tokenize = tokenizer, lower = True)
class = Field(sequential = False, use_vocab = False)
fields = {'text': ('text', text), 'class':('class', class)}

train_data, test_data = TabularDataset.splits(
    path = 'data_directory/',
    train = 'train.csv',
    test = 'test.csv',
    format = 'csv',
    fields = fields
)

text.build_vocab(train_data, max_size=10000, min_freq=10)

train_iterator, test_iterator = BucketIterator.splits(
    (train_data, test_data), batch_size = 2, device = "cpu"
)

以上修改自this git repository

但我找不到任何关于使用较新版本的 torchtext 加载数据的教程。新的 torchtext 甚至不包含旧代码。如何使用新的 torchtext 0.12.0 加载 csv?

【问题讨论】:

    标签: python torch torchtext


    【解决方案1】:
    from torchdata.datapipes.iter import FileOpener, IterableWrapper
    def get_data(split = "train"):
        url_dp = IterableWrapper([f"{split}.csv"])
        data_dp = FileOpener(url_dp, mode="b")
        return data_dp.parse_csv().map(fn=lambda t: (t[0], t[1] ))
    

    我使用 IterableWrapper 和 FileOpener 来解析我的 csv。然后,您可以将其传递给 DataLoader 以获取所需的数据加载器。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-05-01
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      相关资源
      最近更新 更多