ImportError: cannot import name ‘Field‘ from ‘torchtext.data‘, No module named “legacy“

这些都是在下载最新的torchtext后出现的问题,问题如标题,在torchtext.data里面并没有Field方法,以及通过别的博主在data前加了legacy却发现没有legacy模块。

1 问题解释

出现这些问题是因为torchtext过新,这一点在github官网里给出了解释:
在这里插入图片描述
也就是说:在torchtext 0.11版本中field方法被移到了torchtext.legacy下,所以会看到其他博客的评论区里出现下面代码适用的情况:

from torchtext.legacy.data import field

但是在torchtext 0.12.0版本中legacy目录和field方法都没了,所以上面的代码无法再适用,会报错。

2 解决办法

唯一的解决方法是下载低版本的torchtext,要注意torchtexttorch的版本是对应的,在更新它之前最应该把torch也降级成对应的版本,版本对应如下:
在这里插入图片描述
安装低版本的torchtext

conda install -c pytorch torchtext==版本号

安装低版本的pytorch:在pytorch官网找对应的版本下载指令。

3 注意事项

首先,如果是复现别人的代码应该问清楚别人当时使用的版本是多少,因为torchtext版本与版本之间太不同了,我降低了一次之后又出现了别的问题,只能去看作者使用的版本是多少再降级。直到最后我的torch版本是1.7torchtext版本是0.4.0,虽然并没有对应上但是神奇的跑通了。

其次,我在安装低版本的torchtext后用pip list或者conda list发现torchtext并没有降级,这时候我们可以使用下面的代码,先把原来的删了,然后再装新的:

pip uninstall torchtext
  • 33
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值