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

从keras.utils导入np_utils触发ImportError异常,求解决方案

问题原因分析

出现ImportError: cannot import name 'np_utils' from 'keras.utils'的核心原因有两个:

  1. 模块结构变更:在新版Keras(包括Keras 3.x独立版本和TensorFlow集成的tf.keras)中,np_utils子模块已被移除,原模块下的功能(如常用的to_categorical)被直接移至keras.utils或tensorflow.keras.utils命名空间下。
  2. 导入冲突:你的代码同时混用了from keras import ...和from tensorflow.keras import ...两种导入方式,若系统中同时安装了独立Keras包和TensorFlow,会导致版本不匹配,进一步触发导入错误。
解决步骤

1. 清理冲突依赖(优先推荐)

如果你主要使用TensorFlow生态,无需单独安装Keras包,因为TensorFlow已内置tf.keras。执行以下命令卸载独立Keras,避免版本冲突:

pip uninstall keras

2. 统一使用tf.keras导入

将所有导入语句改为使用tensorflow.keras,并替换np_utils的导入:

import numpy as np
import pickle
import cv2, os
from glob import glob
from tensorflow.keras import optimizers
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D
from tensorflow.keras.utils import to_categorical  # 替换原np_utils导入
from tensorflow.keras.callbacks import ModelCheckpoint
from tensorflow.keras import backend as K

3. 调整代码中的功能调用

将原代码中使用np_utils.to_categorical()的地方,直接替换为to_categorical()即可。

若坚持使用独立Keras 3.x

如果必须使用独立Keras包,只需修改np_utils的导入语句:

from keras.utils import to_categorical  # 替换from keras.utils import np_utils

同时确保所有导入语句统一使用from keras import ...,避免与tf.keras混用。

内容的提问来源于stack exchange,提问作者Rama Krishna Mandapaka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:01:18