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

Keras中集成ResNet50与DenseNet121遇图断开错误求助

解决Keras集成ResNet50和DenseNet121时的“Graph disconnected”错误

你猜的完全正确!这个错误的核心原因就是两个模型各自创建了独立的输入层,哪怕它们的输入形状完全一致,Keras的计算图也无法自动把它们关联到同一个输入源上,最终导致“图断开”的问题。

问题根源

当你直接加载ResNet50和DenseNet121且未指定input_tensor参数时,每个模型都会生成自己的输入层(比如报错里的input_8就是其中一个模型的输入层)。Keras的计算图要求所有层都必须连接到同一个输入张量,否则模型不知道该把输入数据喂给哪个输入层,自然就会抛出“无法获取张量值”的错误。

具体解决方案

我们只需要创建一个共享的输入层,让两个模型都基于这个输入层构建,就能解决这个问题。步骤如下:

  1. 定义共享输入张量
    先创建一个符合模型输入要求的共享输入层:

    from tensorflow.keras.layers import Input
    # 匹配ResNet50和DenseNet121的默认输入形状
    shared_input = Input(shape=(224, 224, 3))
    
  2. 加载模型时指定共享输入
    加载两个预训练模型时,通过input_tensor参数指定刚才创建的共享输入,同时设置include_top=False去掉顶层分类层:

    from tensorflow.keras.applications import ResNet50, DenseNet121
    
    # 让两个模型共享同一个输入张量
    resnet_base = ResNet50(include_top=False, input_tensor=shared_input, weights='imagenet')
    densenet_base = DenseNet121(include_top=False, input_tensor=shared_input, weights='imagenet')
    
  3. 融合特征并构建最终模型
    提取两个模型的特征输出,进行融合(比如拼接、相加等),再添加自定义的分类层:

    from tensorflow.keras.layers import Concatenate, GlobalAveragePooling2D, Dense
    from tensorflow.keras.models import Model
    
    # 获取两个模型的特征输出
    resnet_features = resnet_base.output
    densenet_features = densenet_base.output
    
    # 融合特征(这里用拼接操作,你也可以根据需求用Add()、Multiply()等)
    merged_features = Concatenate(axis=-1)([resnet_features, densenet_features])
    
    # 添加全局平均池化和分类层
    x = GlobalAveragePooling2D()(merged_features)
    x = Dense(256, activation='relu')(x)
    # 替换num_classes为你的任务类别数
    final_output = Dense(num_classes, activation='softmax')(x)
    
    # 构建完整的融合模型
    combined_model = Model(inputs=shared_input, outputs=final_output)
    

额外注意事项

  • 如果不需要预训练权重,可以把weights参数设为None,但共享输入张量的设置逻辑完全相同。
  • 如果后续需要冻结预训练模型的权重(只训练自定义层),可以通过resnet_base.trainable = False和densenet_base.trainable = False来实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:51:06