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

Keras 2.4环境下升级加载TensorFlow 2模型的路径报错问题

TF2 SavedModel 加载问题排查及解决方案
  1. API 兼容性问题
    你原代码使用的是独立Keras 2.4的keras.models.load_model接口,该接口不兼容TensorFlow 2原生导出的SavedModel格式,必须使用TF2内置的tf.keras.models.load_model接口加载。
  2. Windows 路径转义问题
    你报错找不到已存在的目录,90%以上概率是Python字符串转义导致:Windows路径中的反斜杠\会被Python识别为转义字符,比如\n会被识别为换行,而非路径的一部分。
  3. 错误指向单个.pb文件
    SavedModel格式是完整目录结构,包含saved_model.pb(计算图)、variables(权重参数)、assets(资源文件)三部分,单独加载.pb文件会缺失权重等核心信息,加载失败是预期行为。

正确操作步骤

  • 替换导入接口,使用TensorFlow内置的keras模块
  • 路径声明为原始字符串(开头加r),避免转义问题
  • 直接传入SavedModel的根目录路径加载

对应代码示例:

import tensorflow as tf

# 路径开头加r声明为原始字符串,避免反斜杠转义
saved_model_dir = r"C:\Users\722208\Desktop\Models\WPC_Ox_TF2_112421_Segnet_1_serving_model"
# 直接传入根目录路径加载模型
model = tf.keras.models.load_model(saved_model_dir)

异常场景排查

如果按上述操作还是加载失败,检查以下问题:

  • 确认导出和加载使用的TensorFlow大版本一致,高版本TF导出的模型无法被低版本TF正常加载
  • 确认当前Python进程对目标目录有读取权限,桌面路径在部分Windows权限策略下会限制程序访问
  • 如果模型包含自定义层、自定义损失函数,加载时需要传入custom_objects参数指定对应的自定义对象,示例:
model = tf.keras.models.load_model(saved_model_dir, custom_objects={"MyCustomLayer": MyCustomLayer, "my_loss": my_loss})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:45:04