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

如何从已保存的Keras主模型中提取子模型model_audio的输出

从已保存的Keras主模型中提取子模型输出的正确方法

问题背景

构建了包含model_audio(model1)、model_text(model2)的主模型model_final,需从已保存的该Keras主模型中提取子模型model_audio的输出。

最初尝试的代码及错误

最初代码:

model_output = model.layers[-8].output  # 'model' layer is at index -8 from the summary
model_layer_output = Model(inputs=model.input, outputs=model_output)
intermediate_output = model_layer_output.predict([test_input_1_data, test_input_2_data])

触发错误:

Graph disconnected: cannot obtain value for tensor KerasTensor(type_spec=TensorSpec(shape=(None, 135, 40), dtype=tf.float32, name='Input_layer'), name='Input_layer', description="created by layer 'Input_reshape'"). The following previous layers were accessed without issue: []

后续尝试的代码(输出形状符合预期,但存疑)

# audio model
input_layer = Input(shape=(135, 40))  
model_audio_output = model.get_layer('model')(input_layer)
submodel = Model(inputs=input_layer, outputs=model_audio_output)
audio_embed=submodel.predict(input_samples)

错误原因

直接通过主模型整体输入连接子模型输出时,计算图会断开。主模型输入包含音频、文本两个分支,而model_audio子模型的输入仅对应音频分支,强行从主模型全输入指向子模型输出,会导致Keras无法追踪到子模型输入与主模型输入的有效关联。

正确提取方法

核心思路

直接复用主模型中已保存的model_audio子模型实例,基于其自身的输入输出构建新的提取模型,确保权重和计算图的完整性。

严谨实现步骤

  1. 确认子模型的层名称
    运行model.summary()查看主模型结构,找到model_audio子模型在主模型中的准确层名称(比如可能是'model_audio'、'model1',而非示例中的'model')。

  2. 构建子模型提取器
    无需手动定义输入层,直接利用子模型自身的输入输出节点构建新模型:

    from tensorflow.keras.models import load_model, Model
    
    # 加载已保存的主模型
    model = load_model('path/to/model_final.h5')
    
    # 获取主模型中的model_audio子模型
    audio_submodel = model.get_layer('your_model_audio_layer_name')
    
    # 构建仅输出model_audio结果的提取器
    audio_extractor = Model(inputs=audio_submodel.input, outputs=audio_submodel.output)
    
    # 传入音频输入获取输出
    audio_embed = audio_extractor.predict(input_samples)
    
  3. 验证正确性
    取少量测试数据,同时通过主模型(传入完整音频+文本输入)获取model_audio的输出,与提取器的输出做数值对比,若结果一致则说明提取正确。

对后续尝试代码的验证

你后续尝试的代码思路是可行的,但手动定义输入层时需确保输入形状与model_audio的原始输入完全匹配。相比之下,直接复用audio_submodel.input的方式更可靠,能避免形状匹配错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:22:38