已安装PyTorch 1.7.1,运行Transformers代码遇ModuleNotFoundError求助
解决
ModuleNotFoundError: No module named 'torch.utils._pytree'问题 问题原因
torch.utils._pytree是PyTorch 1.8.0及更高版本才引入的内部模块,你当前使用的PyTorch 1.7.1不包含该模块。而你安装的transformers版本依赖了这个高版本PyTorch的特性,导致导入时报错。
解决方案
有两种可行的解决路径,根据你的环境需求选择:
路径一:降级transformers到兼容版本
选择适配PyTorch 1.7.1的transformers版本,比如4.12.x系列(经测试该系列与PyTorch 1.7.1兼容性良好)。执行以下命令安装指定版本:pip install transformers==4.12.5路径二:升级PyTorch到1.8.0及以上
如果你的环境允许升级PyTorch,直接安装满足版本要求的PyTorch即可。基础命令如下:pip install torch>=1.8.0注意:如果你的PyTorch是CUDA版本,升级时需要匹配当前系统的CUDA版本,避免出现兼容性问题。
验证
完成上述操作后,重新运行你的导入代码:
import transformers from transformers import BertTokenizer from transformers.models.bert.modeling_bert import BertModel,BertForMaskedLM
若不再报错,说明问题已解决。
内容的提问来源于stack exchange,提问作者A_B_Y
相关产品推荐
相关产品推荐

