keras 模型中自定义上采样函数,加载模型报错: ValueError: Unknown layer: BilinearUpsampling

本文介绍了在Keras中自定义BilinearUpsampling层导致加载模型时出现`ValueError: Unknown layer: BilinearUpsampling`的问题。在训练过程中,自定义层能够正常工作,但当尝试使用ModelCheckpoint加载模型进行测试时,遇到了错误。这可能是由于模型序列化过程中未包含自定义层的实现导致的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模型自定义了BilinearUpsampling层如下代码,模型训练能正常调用BilinearUpsampling,模型保存用ModelCheckpoint,测试时加载模型报错:ValueError: Unknown layer: BilinearUpsampling

class BilinearUpsampling(Layer):

    def __init__(self, upsampling=(2, 2), data_format=None, **kwargs):

        super(BilinearUpsampling, self).__init__(**kwargs)
        self.data_format = conv_utils.normalize_data_format(data_format)
        self.upsampling = conv_utils.normalize_tuple(upsampling, 2, 'size')
        self.input_spec = InputSpec(ndim=4)

    def compute_output_shape(self, input_shape):
        height = self.upsampling[0] * \
            input_shape[1] if input_shape[1] is not None else None
        width = self.upsampling[1] * \
            input_shape[2] if input_shape[2] is not None else None
        return (input_shape[0],
                height,
                width,
                input_shape[3])

    def c
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值