迁移学习详情介绍

迁移学习

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

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

相关推荐
NAGNIP11 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab13 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab13 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP16 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年16 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼17 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS17 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区18 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈18 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang18 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx