You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras导入报错:无法从keras.src.backend导入‘cast’(循环导入)

解决Keras与TensorFlow导入时的循环导入错误

问题场景

导入代码如下:

import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras import layers, models

运行时出现错误:

ImportError: cannot import name 'cast' from partially initialized module 'keras.src.backend' (most likely due to a circular import) (C:\Users\DELL\AppData\Local\Programs\Python\Python311\Lib\site-packages\keras\src\backend\__init__.py)

解决方案

  • 统一导入方式,避免混合引用
    不要同时混用import tensorflow.keras as keras和from tensorflow.keras import ...,直接通过TensorFlow命名空间使用Keras,修改导入代码为:

    import tensorflow as tf
    from tensorflow.keras import layers, models
    # 后续使用时直接用tf.keras替代单独的keras引用,比如tf.keras.models.Sequential()
    
  • 卸载独立Keras包,消除版本冲突
    如果单独安装过Keras,会和TensorFlow自带的Keras模块产生路径冲突,执行以下命令卸载独立Keras:

    pip uninstall keras -y
    

    之后安装与自带Keras兼容的TensorFlow稳定版本,比如:

    pip install tensorflow==2.15.0
    
  • 清理Python模块缓存
    删除项目目录下的__pycache__文件夹,同时清理Python安装目录site-packages中Keras相关的缓存文件,避免缓存导致的模块加载异常。

  • 调整导入顺序
    将TensorFlow/Keras的导入语句放在代码最开头,避免其他自定义库或模块提前修改Keras的加载路径。

错误原因

该错误本质是循环导入,通常由两种情况引发:

  1. 系统中同时存在独立Keras包和TensorFlow集成的Keras,两个版本的模块路径冲突;
  2. 导入方式混乱,混用了不同命名空间下的Keras模块,导致模块初始化时出现依赖循环。

内容的提问来源于stack exchange,提问作者Tanasa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 21:57:43