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

加载model.json模型架构时出现resize_bilinear相关AttributeError如何解决

问题原因

你使用的EAST仓库导出的model.json基于TensorFlow 1.x版本生成,当时resize_bilinear是tf.image下的公开接口。TensorFlow 2.x重构了图像预处理API,将不同插值方式的缩放接口统一合并为tf.image.resize,通过method参数指定插值类型,原resize_bilinear接口仅在tf.compat.v1命名空间下保留,所以直接加载会触发属性不存在的报错。

可用解决方法

方法1:加载时传入自定义对象映射(最稳妥,无需修改原文件)

通过model_from_json的custom_objects参数,将模型中引用的resize_bilinear映射为兼容的TF2.x实现,代码如下:

import tensorflow as tf
from tensorflow.keras.models import model_from_json

# 实现对齐旧版参数的双线性缩放函数
def resize_bilinear(images, size, align_corners=False):
    return tf.image.resize(
        images, size, 
        method=tf.image.ResizeMethod.BILINEAR, 
        align_corners=align_corners
    )

with open("model.json", "r") as file:
    model_json = file.read()

# 加载时传入自定义对象映射
loaded_model = model_from_json(model_json, custom_objects={"resize_bilinear": resize_bilinear})

方法2:修改model.json的接口名称

直接打开model.json文件,全局搜索所有resize_bilinear字符串,替换为resize即可。TensorFlow 2.x的tf.image.resize默认使用双线性插值,行为和旧版resize_bilinear完全兼容。

方法3:临时挂载接口别名(快速验证用)

在加载模型前手动给tf.compat.v2.image挂载resize_bilinear的别名,指向兼容的旧接口:

import tensorflow as tf
# 手动补全缺失的接口别名
tf.compat.v2.image.resize_bilinear = tf.compat.v1.image.resize_bilinear

from tensorflow.keras.models import model_from_json
with open("model.json", "r") as file:
    model_json = file.read()
loaded_model = model_from_json(model_json)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:54:02