You need to enable JavaScript to run this app. 导入keras出现BatchNormalizationBase属性缺失报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

导入keras出现BatchNormalizationBase属性缺失报错如何解决

问题根因

该报错和你脚本的导入逻辑无关,是你安装的独立Keras包与TensorFlow包版本不匹配导致的:你导入的独立Keras内部调用TensorFlow内置的tf.keras接口时,当前版本的TensorFlow中已经不存在BatchNormalizationBase这个类定义,因此触发了属性缺失错误。

解决方案
  • 方案1(最推荐):统一使用TensorFlow内置的Keras,无需额外安装独立Keras包,将你脚本的导入代码替换为如下内容即可:
import matplotlib.pyplot as plt

from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, MaxPool2D, Flatten, Dropout 
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.optimizers import Adam

from sklearn.metrics import classification_report,confusion_matrix

import tensorflow as tf

import cv2
import os

import numpy as np
  • 方案2(需要保留独立Keras的情况):保证独立Keras和TensorFlow的版本号完全匹配,2.10及以前的版本二者是一一对应的,比如Keras 2.10对应TensorFlow 2.10,可执行如下命令卸载现有版本重装匹配版:
pip uninstall keras tensorflow -y
pip install tensorflow==2.10 keras==2.10

如果使用conda环境,替换为对应conda安装命令即可。

  • 方案3:如果要使用最新版Keras 3,直接安装官方适配的版本即可,新版本重构了跨框架调用逻辑,不会出现这类旧版本兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 23:24:03