使用torchtext与pytorch时无法导入vocab如何解决?
问题原因
你当前使用的torchtext 0.8.0a0版本并未提供小写的vocab工厂方法,该API是torchtext 0.9.0及以上版本才正式加入torchtext.vocab模块的。你安装的torch 1.7.1对应的官方适配torchtext版本就是0.8.x系列,版本本身兼容没有问题,报错是因为你调用了更高版本才有的API接口。
解决方案
可以根据你的环境限制选择以下两种方案:
- 方案一:不修改现有环境,适配当前torchtext版本
仅导入现有版本支持的Vocab类即可实现词汇表构建,参考代码如下:from collections import Counter from torchtext.vocab import Vocab # 示例:基于词频统计构建词汇表 word_counter = Counter(["your", "text", "corpus", "word", "list"]) vocab = Vocab(word_counter, min_freq=1) - 方案二:升级依赖版本以使用
vocabAPI
如果你需要使用vocab方法,可将torch升级到1.9.0及以上版本,同时安装对应适配的torchtext 0.10.0及以上版本,升级命令参考:
如果是配置受限的HPC环境无法直接在线升级,可通过创建独立conda虚拟环境、离线下载对应版本安装包的方式完成部署。pip install torch==1.9.0 torchtext==0.10.0
内容的提问来源于stack exchange,提问作者Charlie Parker
相关产品推荐
相关产品推荐

