迁移学习详情介绍

迁移学习

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

为什么使用迁移学习呢?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个类别进行判定,若希望利用已经训练的模型用于其他分类任务,需要修改最后的全连接层。

相关推荐
甲维斯5 小时前
坦克大战测试全翻车了!豆包,DeepSeek,Qwen,GPT,Claude
前端·人工智能·游戏开发
若丶相见5 小时前
AI 大模型零基础知识扫盲
人工智能
猿人谷7 小时前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
说了很好8 小时前
PyTorch从零搭建DDPM:时间嵌入+UNet网络+扩散调度完整复现
人工智能
Bigfish_coding8 小时前
前端转agent-【python】-06 长期记忆(向量数据库 + 嵌入)
人工智能
小林ixn8 小时前
别再手写Prompt了!用AI Loop实现自动化自我迭代,效率提升10倍
人工智能·自动化运维
说了很好8 小时前
逐行注释DDPM源码:正向加噪、逆向去噪、MSE损失全流程复现
人工智能
Dilee8 小时前
Spring AI 1.1.7 接入 MCP:Filesystem Server 最小 Demo
人工智能·后端
Token炼金师8 小时前
大模型推理超参数原理详解
人工智能
Token炼金师8 小时前
大模型训练超参数:从Loss曲面到收敛策略的底层逻辑
人工智能