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

Keras构建Sequential模型后调用.compile()报错'str' object is not callable

问题原因分析
  • 变量命名冲突(最高发):Jupyter Notebook 会保留当前Kernel运行周期内的所有全局变量,如果你之前在同个Kernel下运行过类似device_name = "/gpu:0"的代码,会覆盖TensorFlow运行上下文内置的device_name()方法,调用该方法时就会触发'str' object is not callable报错。而Colab每次新建会话都是干净的运行环境,不存在历史变量冲突,所以代码可以正常执行。
  • TensorFlow版本不兼容:本地Anaconda环境安装的TensorFlow版本和Colab默认版本不一致,部分底层API的实现存在差异也会触发该报错。
解决方案
  • 优先重启当前Jupyter Notebook的Kernel,清空所有历史变量后,单独运行模型相关代码,90%以上的同类型问题都可以通过该操作解决。
  • 若重启后仍报错,对齐本地与Colab的TensorFlow版本:
    分别在两边环境执行print(tf.__version__)查看版本号,将本地版本调整为和Colab一致即可,例如安装指定版本GPU版TensorFlow可执行:
    pip install tensorflow-gpu==2.9.0
    
  • 临时规避方案:如果不需要调整版本,可以在导入TensorFlow后先清空后端会话再构建模型:
    import tensorflow as tf
    tf.keras.backend.clear_session()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:36:03