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

PySpark导入DeepImageFeaturizer报无法从keras.applications导入ResNet50错误

问题根因

该报错是因为sparkdl(Spark Deep Learning)包已停止维护,它仅适配Keras 2.3及更早的版本,而当前Colab环境默认搭载TensorFlow 2.x,内置的Keras接口已经调整了预训练模型的导入路径:旧版本的from keras.applications import ResNet50写法在新版Keras中已经失效,sparkdl内部硬编码了旧的导入语句,因此触发报错。

可行解决步骤
  • 第一步:先降级Colab中的TensorFlow、Keras和相关依赖到sparkdl兼容的版本,执行以下安装命令:
!pip install tensorflow==1.15.0 keras==2.2.5 h5py==2.10.0

安装完成后需要重启Colab运行时,让版本配置生效。

  • 第二步:安装对应适配版本的sparkdl包:
!pip install sparkdl==0.2.2
  • 第三步:导入前先指定Keras后端为tensorflow,再执行目标导入:
import os
os.environ['KERAS_BACKEND'] = 'tensorflow'
from sparkdl import DeepImageFeaturizer
无降级替代方案

如果不想使用老旧的TensorFlow 1.x环境,可以放弃sparkdl依赖,直接手动提取特征后适配Spark逻辑:

  1. 把待处理的图像数据批量加载为numpy数组格式
  2. 初始化tf.keras.applications.InceptionV3模型,指定include_top=False直接获取特征层输出
  3. 对图像做对应预处理后调用predict接口得到特征向量
  4. 将特征向量、对应标签组装为pandas DataFrame后,再转成Spark DataFrame即可使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:27:02