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

TensorFlow2.5.0导入keras与segmentation_models报AttributeError求助

问题根因

报错的核心原因是环境中依赖版本不兼容:

  • TensorFlow 2.5.0 内置的 tf.keras 版本为 2.5.x,而你单独安装的独立 Keras 版本为 2.3.1,二者接口不匹配
  • segmentation-models 1.0.1 默认调用独立 Keras 的旧接口,populate_dict_with_module_objects 是高版本 Keras 才有的方法,在 2.3.1 版本中不存在
可行解决方案

提供两种可落地的方案,二选一即可:


方案1:适配现有TensorFlow 2.5.0环境(无需降级TF,推荐)

  1. 先卸载不兼容的独立低版本Keras
pip uninstall keras -y
  1. 调整导入代码,在导入segmentation_models之前先指定其使用的框架为TF内置的tf.keras,同时将所有Keras相关导入替换为tf.keras下的模块,修改后完整导入代码如下:
import tensorflow as tf
import glob
import cv2
import os
import numpy as np
from matplotlib import pyplot as plt

# 必须在导入segmentation_models之前设置环境变量
os.environ['SM_FRAMEWORK'] = 'tf.keras'
import segmentation_models as sm

from tensorflow.keras.utils import normalize
from tensorflow.keras.metrics import MeanIoU

方案2:使用兼容的旧版本组合

如果你的业务代码必须依赖独立Keras,可以统一降级到匹配的版本组合:

  1. 先卸载冲突的依赖包
pip uninstall tensorflow tensorflow-gpu keras segmentation-models efficientnet image-classifiers -y
  1. 安装经过验证的兼容版本
pip install tensorflow==2.1.0
pip install keras==2.3.1
pip install segmentation-models==1.0.1

你当前环境的numpy版本为1.19.5,刚好符合该版本组合的要求,无需额外调整。


验证

修改完成后重启Python内核,重新运行导入代码即可解决报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 20:12:02