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

如何使用预训练VGG16实现多输出迁移学习并配置对应编译参数?

解决方案

你只需要用预训练VGG16替换原有自定义的卷积特征提取部分,输出分支结构、编译配置可以完全复用你现有代码的逻辑,完整实现代码如下:

import tensorflow as tf
from tensorflow.keras import layers
from keras.applications.vgg16 import VGG16

# 加载预训练VGG16,去掉顶层分类头
vgg16_model = VGG16(weights='imagenet',
                  include_top=False,
                  input_shape=(224,224,3))

# 可选:先冻结VGG16的所有层,先训练自定义输出头,避免破坏预训练特征
vgg16_model.trainable = False

def vgg16_multi_output_model():
    input = tf.keras.layers.Input(shape=(224,224,3))
    # 用VGG16做特征提取,替换原来的自定义卷积层
    x = vgg16_model(input)
    x = layers.Dropout(0.1)(x)
    x = layers.Flatten()(x)
    # 输出分支和你原有结构完全一致
    out_col = layers.Dense(512, activation='relu')(x)
    out_ren = layers.Dense(512, activation='relu')(x)
    out_col = layers.Dense(1, activation='sigmoid', name='col_out')(out_col)
    out_ren = layers.Dense(1, activation='relu', name='ren_out')(out_ren)
    multiOutputModel = tf.keras.models.Model(inputs=input, outputs=[out_col, out_ren])

    # 编译配置完全复用你原有参数即可
    multiOutputModel.compile(
              optimizer='adam', 
              loss={
                  'ren_out': 'mean_squared_error',  
                  'col_out': 'binary_crossentropy'},
              loss_weights={
                  'ren_out': 4.0, 
                  'col_out': 0.1},
              metrics={
                  'ren_out': 'mean_absolute_error', 
                  'col_out': 'accuracy'})
    # 修正你原有代码里的小错误:plot_model的第一个参数要传入模型对象
    tf.keras.utils.plot_model(multiOutputModel, 'vgg16_multi_output.png', show_shapes=True)
    return multiOutputModel

# 初始化模型查看结构
multiOutputModel = vgg16_multi_output_model()
multiOutputModel.summary()

注意事项

  • 如果你需要进一步提升模型效果,可以在输出头训练收敛后,将vgg16_model.trainable设为True,仅解冻VGG16的最后2-3个卷积块,降低学习率到1e-5级别再微调几轮,避免破坏预训练得到的通用特征
  • 训练时传入的标签需要和输出分支对应,使用字典格式传入的话键名对应col_out和ren_out即可正常计算损失和评估指标

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:48:01