【已解决】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

然后重新运行。

相关推荐
梯度下降者4 分钟前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
benchmark_cc3 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
伞伞悦读3 小时前
【第70期】Adam二阶矩不是方差:偏差校正、动量与AdamW完整实验
python
外收内放3 小时前
Python基础语法练习题(73)
java·前端·python
锋行天下4 小时前
Langgraph HITL 中断运行,用户输入后输出打字效果
人工智能·python
时早玖沐4 小时前
给 AstrBot 写一个天气推送插件:12 次提交、6 个坑
python·开源·ai编程
触底反弹4 小时前
🚀 FastAPI 五大重难点深度剖析:从 500 报错到彻底搞懂 Depends、Pydantic 与 SQLAlchemy
python·fastapi
cpolar技术支持4 小时前
网关加 gzip,同时开启 chunked,下载回来的包解不开:把两层编码的解压顺序与长度核对做成只读页
python·http·网络编程·socket·内网穿透
小嘉丶学长4 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节