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

Keras构建多输出Functional模型时触发ValueError错误如何解决

报错原因

触发的报错信息为:

ValueError: Output tensors of a Functional model must be the output of a TensorFlow Layer (thus holding past layer metadata). Found: <keras.layers.core.Dense object at 0x7fc72304d210>

该报错的核心原因是Keras Functional模型要求传入的outputs必须是层的输出张量,不能是未调用的层实例。
你代码中边界框输出分支的写法存在错误:

# 此处仅实例化了Dense层对象,未传入上层张量完成前向计算,得到的是层实例而非输出张量
bbox_output = Layers.Dense(4, activation = 'sigmoid', name = 'bounding_box')

对比分类输出分支的正确写法:你在实例化分类输出的Dense层后,传入了上层的classification张量得到输出张量class_output,而边界框分支缺少了层调用的步骤,导致你传入模型的bbox_output是层对象而非张量,触发报错。

修复方法
  1. 修改边界框输出分支的代码,完成层调用,拿到输出张量:
# 修正后写法,将上层bbox张量传入Dense层
bbox_output = Layers.Dense(4, activation = 'sigmoid', name = 'bounding_box')(bbox)
  1. 补充缺失的tensorflow导入,避免tf未定义报错,在代码开头加入:
import tensorflow as tf
完整可运行代码
import tensorflow as tf
import tensorflow.keras.layers as Layers
from tensorflow.keras.applications import VGG16


vgg = VGG16(
        include_top=False,
        weights="imagenet",
)
vgg.trainable = False

def create_model():
    inputs = Layers.Input(shape = (224,224,3))
    x = vgg(inputs)
    
    flatten = Layers.Flatten()(x)

    bbox = Layers.Dense(512, activation = 'relu')(flatten)
    bbox = Layers.Dropout(0.2)(bbox)
    bbox = Layers.Dense(64, activation = 'relu')(bbox)
    bbox = Layers.Dropout(0.2)(bbox)
    # 修正后代码
    bbox_output = Layers.Dense(4, activation = 'sigmoid', name = 'bounding_box')(bbox)

    classification = Layers.Dense(512,activation='relu')(flatten)
    classification = Layers.Dropout(0.5)(classification)
    classification = Layers.Dense(128, activation = 'relu')(classification)
    classification = Layers.Dropout(0.25)(classification)
    class_output = Layers.Dense(3, activation = 'softmax', name = 'class')(classification)

    model = tf.keras.Model(inputs = inputs, outputs = [class_output, bbox_output])
    return model

model = create_model()
model.summary()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:06:06