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

Keras导出DeepLabV3Plus模型失败:NoneType形状报错

问题:DeepLabV3Plus导出SavedModel时UpSampling2D报错

导出时触发如下错误:

File "C:\Users\u\.pyenv\pyenv-win\versions\3.10.2\lib\site-packages\keras\src\utils\traceback_utils.py", line 731, in error_handler  *
    return fn(*args, **kwargs)

TypeError: Exception encountered when calling UpSampling2D.call().

unsupported operand type(s) for *: 'NoneType' and 'int'

Arguments received by UpSampling2D.call():
  • inputs=tf.Tensor(shape=(None, None, None, 256), dtype=float32)

调用DeepLabV3Plus.from_preset时已指定input_shape=[224,224,3],但模型摘要显示所有层形状均为None,训练脚本如下:

model = keras_cv.models.DeepLabV3Plus.from_preset(
    "mobilenet_v3_large_imagenet",
    num_classes=NUM_CLASSES,
    input_shape=[224,224,3],
    load_weights=True
)

layers_to_train = 1
def disable_training(x): x.trainable = False
[disable_training(layer) for layer in model.layers[:-layers_to_train]]
model.summary()


model.compile(
    optimizer=keras.optimizers.Adam(learning_rate=LEARNING_RATE),
    loss=[keras.losses.CategoricalFocalCrossentropy(from_logits=False, alpha=class_weights, gamma=3)],
    metrics=[keras.metrics.OneHotMeanIoU(num_classes=NUM_CLASSES), 'accuracy'])
 
callback_cyclic = CyclicLR(base_lr = LEARNING_RATE, max_lr = MAX_LEARNING_RATE, step_size=STEP_SIZE, mode = CYCLIC_MODE)

history = model.fit(train_dataset, epochs=NUM_EPOCHS, batch_size=NUM_BATCH, validation_data=val_dataset, callbacks=[callback_cyclic])


model.export(savepath_dir+"model.tf")

解决方法

1. 导出前触发模型形状构建

在调用model.export()前,用固定形状的输入跑一次前向传播,让模型确认所有层的具体形状:

# 添加该行代码
model(tf.random.normal((1, 224, 224, 3)))
model.export(savepath_dir+"model.tf")

2. 导出时指定输入签名

明确告知模型输入的形状规格,避免动态维度引发的错误:

model.export(
    savepath_dir+"model.tf",
    input_signature=tf.TensorSpec(shape=(None, 224, 224, 3), dtype=tf.float32)
)

3. 升级依赖版本

部分旧版本的Keras/Keras CV存在动态形状处理bug,升级到最新稳定版可解决问题:

pip install --upgrade keras keras-cv tensorflow

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 23:43:18