使用transformers的pipeline时出现No module named 'keras.__internal__'错误
解决RuntimeError: No module named 'keras.internal'错误
问题根源
你安装的Keras 3.5.0和TensorFlow 2.17.x存在适配冲突,同时transformers版本可能没跟上Keras 3的更新,导致代码调用了Keras 3中已被移除的keras.__internal__模块,触发报错。
可行解决办法
办法1:降级Keras到和TensorFlow匹配的版本
TensorFlow 2.17.x本身自带的Keras版本是2.17.x,你单独安装的Keras 3.x打乱了适配关系,执行以下命令降级即可:
pip install keras==2.17.0
办法2:升级transformers到支持Keras 3的版本
如果想保留Keras 3,需要把transformers更新到足够新的版本(至少4.35.0以上),执行升级命令:
pip install --upgrade transformers
办法3:强制Keras使用TensorFlow后端
如果坚持使用Keras 3,可以通过设置环境变量让它以TensorFlow作为后端,避免多后端适配问题:
要么在代码最开头添加这段:
import os os.environ["KERAS_BACKEND"] = "tensorflow"
要么在运行代码的终端先执行:
export KERAS_BACKEND=tensorflow
验证方法
运行以下代码测试是否解决问题:
from transformers import pipeline classifier = pipeline("text-classification") print(classifier("This is a test sentence."))
内容的提问来源于stack exchange,提问作者Tiina
相关产品推荐
相关产品推荐

