这些都是在下载最新的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
,要注意torchtext
和torch
的版本是对应的,在更新它之前最应该把torch
也降级成对应的版本,版本对应如下:
安装低版本的torchtext
:
conda install -c pytorch torchtext==版本号
安装低版本的pytorch
:在pytorch官网找对应的版本下载指令。
3 注意事项
首先,如果是复现别人的代码应该问清楚别人当时使用的版本是多少,因为torchtext
版本与版本之间太不同了,我降低了一次之后又出现了别的问题,只能去看作者使用的版本是多少再降级。直到最后我的torch
版本是1.7
,torchtext
版本是0.4.0
,虽然并没有对应上但是神奇的跑通了。
其次,我在安装低版本的torchtext
后用pip list
或者conda list
发现torchtext
并没有降级,这时候我们可以使用下面的代码,先把原来的删了,然后再装新的:
pip uninstall torchtext