当前位置:   article > 正文

ImportError:cannot import name ‘SAVE_STATE_WARNING‘解决_importerror: cannot import name 'save_state_warnin

importerror: cannot import name 'save_state_warning' from 'torch.optim.lr_sc

一、报错情况

我在使用huggingface的transformers模块时,报错ImportError:cannot import name ‘SAVE_STATE_WARNING‘。具体环境如下:Python 3.8.15、torch 1.9.0+cu102、transformers 4.0.0。

二、网上方法

貌似是torch1.7版本之后就把SAVE_STATE_WARNING常量删去了,但是老版本的transformers还会引用。看网上的方法是升级python版本、transformers版本,降低torch版本。升高transformers我这边就会报ImportError: tokenizers>=0.10.1,<0.11的错误,重装tokenizers库符合版本要求依旧报错。

三、解决方案

使用vscode的全局查询功能,查找报错代码语句"from torch.optim.lr_scheduler import SAVE_STATE_WARNING",发现仅存在一个文件trainer_pt_utils.py内:

我的该文件路径供参考:/root/userfolder/chensiyu/anaconda/envs/pytorch_env/lib/python3.8/site-packages/transformers/trainer_pt_utils.py 

将代码修改为:

 问题解决,引用transformer模块不再报错。

四、问题反思

SAVE_STATE_WARNING仅为一个字符串常量,并且transformers的源码中是判断torch.__version__来对它进行赋值,将其修改为SAVE_STATE_WARNING = ""应该问题不大。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/370849
推荐阅读
相关标签
  

闽ICP备14008679号