【已解决】ImportError: cannot import name ‘AdamW‘ from ‘transformers.optimization‘

ImportError: cannot import name 'AdamW' from 'transformers.optimization' (C:\Users\qiaolikui.conda\envs\know\lib\site-packages\transformers\optimization.py) Process finished with exit code 1

这个报错说明:你当前安装的 transformers 版本里,已经彻底不再提供 AdamW 了,所以无论:

python 复制代码
from transformers import AdamW

还是:

python 复制代码
from transformers.optimization import AdamW

都会报错。

现在最稳妥的修改方法是:不用 transformers 里的 AdamW,改用 PyTorch 自带的 AdamW。


把你 main.py 里的这两行:

python 复制代码
from transformers import BertTokenizer
from transformers.optimization import AdamW, get_linear_schedule_with_warmup

改成:

python 复制代码
from transformers import BertTokenizer, get_linear_schedule_with_warmup
from torch.optim import AdamW

也就是最终导入部分应该类似这样:

python 复制代码
import os
import json
import torch
import numpy as np

from config import NerConfig
from model import BertNer
from data_loader import NerDataset

from tqdm import tqdm
from seqeval.metrics import classification_report
from torch.utils.data import DataLoader
from torch.optim import AdamW
from transformers import BertTokenizer, get_linear_schedule_with_warmup

原因很简单:

你的代码里这里用了 AdamW

python 复制代码
optimizer = AdamW(
    optimizer_grouped_parameters,
    lr=args.bert_learning_rate,
    eps=args.adam_epsilon
)

以前老版本 transformers 可以这样导入:

python 复制代码
from transformers import AdamW

但是新版本已经移除了,所以现在要改成:

python 复制代码
from torch.optim import AdamW

如果你不想改代码,也可以直接降级 transformers

bash 复制代码
pip install transformers==4.31.0

但是我更建议你直接用上面的代码修改方法,因为 torch.optim.AdamW 是现在更稳定的写法。

你先把导入部分改成这个:

python 复制代码
from torch.optim import AdamW
from transformers import BertTokenizer, get_linear_schedule_with_warmup

然后重新运行。

相关推荐
the局外人10 分钟前
别再背 Chain、Agent、Memory 了:用一条“智能流水线”学会 LangChain
python·langchain·llm
Zane199429 分钟前
你以为的性能瓶颈,未必是真的瓶颈:用 cProfile 找到真凶
后端·python
铁手飞鹰1 小时前
VSCode Python .embed 嵌入式环境黄色波浪线问题
ide·vscode·python
辰辉创聚1 小时前
重组蛋白表达不出来怎么办?蛋白表达失败、低表达及异常原因解析
python·oracle·eclipse·重组蛋白·蛋白·western blot
淼澄研学1 小时前
基于Docker与iptables的AI智能体网络隔离实操指南
开发语言·python
量化吞吐机1 小时前
程序员学量化开发,先用示例拆清结构
人工智能·python
星辰徐哥2 小时前
打破社媒营销信息差:具身交互智能打造全自动化KOL情报体系
运维·python·自动化·交互·react·数字人
weixin_489690022 小时前
训练素材数据转变过程
人工智能·python
测试19982 小时前
UI自动化测试:窗口截图&文件上传实战
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
叫我:松哥2 小时前
基于Flask的教师评教管理系统,支持学生和教师两种角色登录
数据库·后端·python·数据挖掘·flask