我正在尝试导入:从 torchtext.legacy.data 导入字段,BucketIterator,Iterator,数据,但得到错误'没有名为'torchtext.legacy'的模块

我正在尝试为 nlp proj 执行以下代码

import torchtext
from torchtext.legacy.data import Field, BucketIterator, Iterator
from torchtext.legacy import data

----> 6 from torchtext.legacy.data import Field, BucketIterator, Iterator
      7 from torchtext.legacy import data
      8 

ModuleNotFoundError: No module named 'torchtext.legacy'.

我在 kaggle notebook 和 jupyter notebook 上都试过了,都发现了同样的错误。我什至尝试在 kaggle 中安装 !pip install -qqq deepmatcher==0.1.1 来解决这个问题,但它仍然给出了同样的错误。有什么解决办法吗?

stack overflow I am trying to import:from torchtext.legacy.data import Field, BucketIterator,Iterator,data, but get error 'No module named 'torchtext.legacy'
原文答案

答案:

作者头像

import torchtext.legacy 之前,您需要 !pip install torchtext==0.10.0

也许遗留在版本 0.11.0 中被删除。

作者头像

torchtext.legacy仅适用于pytorch1.9+

对于那些使用较低版本的Pytorch的人(例如,我使用Pytorch1.6 + Torchtext 0.6),您可以在“ Fairseq”文件夹中修改“ Train_ebr.py”脚本。

# old 
from torchtext.legacy import data, datasets
from torchtext.legacy.vocab import Vocab

# new
from torchtext import data, datasets
from torchtext.vocab import Vocab