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

使用预存瓶颈值的迁移学习:完整模型推理的正确实现方式

如何组合预训练基础模型与瓶颈训练的顶层模型进行推理?

你找对了核心方向,就是把预训练的基础模型和训练好的顶层模型拼接起来,让基础模型的输出直接作为顶层模型的输入,构建一个端到端的推理模型。这种方式既复用了瓶颈训练时节省的时间,又能实现从原始图像到最终预测的完整流程,而且不需要冻结基础层(毕竟我们只是用它做前向传播,不涉及训练)。

具体实现步骤

下面是完整的代码示例,一步步来:

  1. 加载预训练的基础模型
    保持和你生成瓶颈值时一致的配置:include_top=False,使用ImageNet预训练权重:

    from keras.applications.xception import Xception
    base_model = Xception(weights='imagenet', include_top=False)
    
  2. 加载训练好的顶层模型
    就是你用瓶颈值训练并保存的那个小型模型:

    from keras.models import load_model
    # 替换成你的模型实际保存路径
    loaded_top_model = load_model('path/to/your/saved_top_model.h5')
    

    小提示:如果训练时用了自定义层、自定义损失或指标,加载时需要通过custom_objects参数指定,比如load_model(..., custom_objects={'MyCustomLayer': MyCustomLayer})。

  3. 拼接两个模型,构建完整推理模型
    把基础模型的输出直接传入顶层模型,创建新的端到端模型:

    from keras.models import Model
    
    # 获取基础模型的输出特征(也就是你之前保存的瓶颈值对应的特征)
    base_model_output = base_model.output
    # 将基础模型的输出作为顶层模型的输入,得到最终预测结果
    final_predictions = loaded_top_model(base_model_output)
    # 构建完整模型:输入是原始图像,输出是最终分类结果
    full_inference_model = Model(inputs=base_model.input, outputs=final_predictions)
    

推理示例

现在你可以直接用这个完整模型处理原始图像了,记得遵循Xception要求的预处理规则:

from keras.applications.xception import preprocess_input
import numpy as np
from PIL import Image

# 加载并预处理图像(Xception要求输入尺寸至少71x71,通常用299x299)
img = Image.open('test_image.jpg').resize((299, 299))
img_array = np.expand_dims(np.array(img), axis=0)  # 增加batch维度
preprocessed_img = preprocess_input(img_array)

# 执行推理
predictions = full_inference_model.predict(preprocessed_img)
# 解析预测结果,比如取概率最高的类别
predicted_class = np.argmax(predictions, axis=1)[0]

为什么这种方式有效?

  • 基础模型的输出形状和你训练顶层模型时的输入形状(bottleneck_shape)完全匹配,所以可以直接对接。
  • 顶层模型的权重已经通过瓶颈值训练完成,不需要再调整;基础模型保持预训练权重,也不需要修改。
  • 和冻结基础层训练完整模型的方式相比,你在训练阶段已经通过瓶颈值节省了大量计算时间,推理阶段这个组合模型的效果和直接训练完整模型完全一致,但不需要重复完整训练流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:27:48