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

然后重新运行。

相关推荐
张小凡vip1 小时前
python--爬虫--成熟的爬虫框架Scrapy
爬虫·python·scrapy
Pluchon1 小时前
Java个人综合项目——萌部落社区V2.0
java·python·spring·spring cloud·postman·idea
不瘦80斤不改名2 小时前
01-vibe-coding-起源与本质
人工智能·python
夜雪一千2 小时前
如何对新闻数据进行模糊去重
python
oyguyteggytrrwwwrt4 小时前
3dgs渲染部分详细注释
python
天天爱吃肉82186 小时前
【重磅发布:拿下新超仁达代理权 】
大数据·人工智能·python·功能测试·汽车
神王宝宝 王者小学6 小时前
面向领域驱动架构的查询实现方式
前端·python·架构
ningmengjing_7 小时前
Redis 从入门到实战:Python操作全攻略
数据库·redis·python
️学习的小王7 小时前
智能文档助手:基于RAG的本地化文档问答系统实战指南
人工智能·python·机器学习
不瘦80斤不改名7 小时前
05-vibe-coding-向agentic-engineering演进
人工智能·笔记·python·prompt