迁移学习详情介绍

迁移学习

利用已经训练好的模型作为新模型训练的初始化的学习方式。

为什么使用迁移学习呢?1.所需要的样本更少;2.模型达到收敛所需的耗时更短;

什么时候适合迁移学习?1.当新数据集比较小且和原数据集相似时,2.算力有限时

怎么使用迁移学习?

基于VGG16模型迁移学习构建

复制代码
def vgg16_model(input_shape=(224,224,3)):
    vggl6 = tf.keras.applications.vgg16.VGG16(include_top=False,weights='imagenet',input_shape=input_shape)
    
    for layer in vggl6.layers:
        layer.trainable = False 
    last = vggl6.output
    x = tf.keras.layers.Flatten()(last)
    x = tf.keras.layers.Dense(128,activation='relu')(x)
    x = tf.keras.layers.Dropout(0.3)(x)
    x = tf.keras.layers.Dense(32,activation='relu')(x)
    x = tf.keras.layers.Dropout(0.3)(x)
    x = tf.keras.layers.Dense(2,activation='softmax')(x)
    model =tf.keras.models.Model(inputs = vggl6.input,outputs=x)
    model.summary()
    return model

微调(finetuining)

1.trainable参数变动

在进行Finetuning对模型重新训练时,对于部分不需要训练的层可以通过设置trainable=False来确保其在训练过程中不对呗修改权值

2.加上特定的全连接层

预训练的VGG实在ImageNet数据集上进行训练的,对1000个类别进行判定,若希望利用已经训练的模型用于其他分类任务,需要修改最后的全连接层。

相关推荐
大傻^13 小时前
Spring AI Alibaba MCP协议实战:模型上下文协议集成与工具调用
java·人工智能·后端·spring·elasticsearch·springaialibaba
superior tigre13 小时前
为WSL2 ubuntu20.04安装cuDNN 9.2
人工智能
前端不太难13 小时前
如何设计 AI Native 鸿蒙应用架构
人工智能·架构·harmonyos
呆呆敲代码的小Y13 小时前
Unity+AI 用一句话制作完整小游戏:飞翔的牛马【AI纯添加-0手工代码】
人工智能·游戏·unity·游戏引擎·游戏制作·unityai·一句话制作游戏
ada0_ada113 小时前
产生式表示法
人工智能
yuezhilangniao13 小时前
大白话AI运维K8S整体思路和相关名词-结合腾讯云
运维·人工智能·kubernetes
cxr82813 小时前
视频工业化制作体系的专业AI多智能体虚拟制作团队构建分析
人工智能·架构·ai智能体
前端摸鱼匠13 小时前
面试题2:Transformer的Encoder、Decoder结构分别包含哪些核心组件?
人工智能·深度学习·ai·面试·职场和发展·transformer
技术小黑13 小时前
TensorFlow学习系列08 | 实现猫狗识别
人工智能·python·tensorflow2·vgg-16算法
ViiTor_AI13 小时前
AI音频翻译原理详解:从语音识别到语音生成的完整流程(2026指南)
人工智能·音视频·语音识别