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

导入segmentation_models报错求助:ModuleNotFoundError与ImportError问题

问题原因及解决方案

问题根源

  1. TensorFlow 2.12+版本中,官方将Keras拆分为独立库,你同时安装了独立Keras 2.12.0和TensorFlow 2.12.0,两者的Keras实现相互独立。而segmentation_models的默认版本依赖TensorFlow集成的tensorflow.keras,而非独立Keras,因此触发ModuleNotFoundError: No module named 'tensorflow.keras'。
  2. 第二个错误ImportError: cannot import name 'optimizer' from 'keras.optimizers',是因为segmentation_models旧版本的代码导入逻辑和独立Keras 2.x的结构不匹配——Keras 2.x中不存在keras.optimizers.optimizer这个对象,正确的导入路径应为具体优化器(如Adam)或keras.optimizers.legacy模块。

解决方法

方法一:使用TensorFlow自带的tf.keras(推荐)

卸载独立安装的Keras,因为TensorFlow 2.x本身已经集成了完整的Keras功能,无需单独安装:

pip uninstall keras -y

完成后重新尝试导入segmentation_models即可,此时环境中只有TensorFlow的tensorflow.keras,库的导入逻辑可正常运行。

方法二:安装适配独立Keras的分支版本

如果必须保留独立Keras,可安装segmentation_models专门适配独立Keras的分支:

pip install git+https://github.com/qubvel/segmentation_models.git@keras

该分支调整了导入路径,适配独立Keras的结构,可解决两个报错问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:57:17