当前位置:网站首页>模型微调(fine-tuning)
模型微调(fine-tuning)
2022-07-21 20:03:00 【落难Coder】
特征提取
微调首先要弄清楚一个概念:特征提取。
用于图像分类的卷积神经网络包括两部分:一系列的卷积层和池化层(卷积基) + 一个密集连接分类器。对于卷积神经网络而言,特征提取就是取出之前训练好的网络的卷积基,用新数据训练一个新的分类器。那么为什么要重复使用之前的卷积基,而要训练新的分类器呢?这是因为卷积基学到的东西更加通用,而分类器学到的东西则针对于模型训练的输出类别,并且密集连接层舍弃了空间信息。
卷积基的通用性取决于该层在模型中的深度。模型中更靠近输入的层提取的特征更通用,更靠近输出的层提取的特征更抽象。
在特征提取时,应冻结卷积基,不对其进行训练,即训练过程中不改变卷积基的权重,只训练最后的dense层。在keras中,冻结方法为将卷积基每层的trainable属性设为False。
模型微调
模型微调与特征提取互为补充。对于用于特征提取的冻结的卷积基,微调是指将其靠近输出的几层解冻,并将这几层与分类器联合训练,让模型更加适用于当前要解决的问题。在keras中,解冻即将对应层的trainable属性设为True。
微调网络的步骤
- 在已经训练好的base network上添加自定义网络
- 冻结基网络
- 训练所添加的部分
- 解冻基网络的一些层
- 联合训练解冻的层和新添加的部分
总结
微调,就是基于预训练模型进行微调,比如用大型数据集Imagenet训练好的resnet,再在自己的数据集上训练一部分靠近输出的层,使之更加适用于自己的问题。
需要微调的情况:
- 预训练模型的数据集与自己的数据集相似,但自己的数据集太少
- 计算资源不够
是否微调以及微调的方法要根据自己的数据集大小、数据集与预训练模型数据集的相似程度来选择。
不同情况下的微调:
- 数据量少,相似度高:修改最后几层;
- 数据量少,相似度低:保留预训练模型的前几层,训练后面的层;
- 数据量大,相似度高:这是最理想的情况。使用预训练的权重初始化模型,重新训练整个模型;
- 数据量大,相似度低:直接重新训练整个模型。
参考
[1]《Python深度学习》
[2] 知乎(如何进行模型微调)
边栏推荐
- 文件操作——C语言
- Data analysis from 0 to 1 --- Matplotlib article
- 这家初创公司想看看你的丁丁!他们用AI检测性疾病,保证数据匿名且加密,你愿意吗
- systemd 管理 redis-exporter linux
- Keyframesextractutils Py, dynamically supports three framing methods, key parameters can be configured, and the code has been optimized for better effect and performance.
- 服装ERP上线后,这些问题必须重视
- Delivery practice of private PAAS platform based on cloud native
- NASA「史上最强超算」投入使用,碾压老超算霸主Pleiades
- X Book app digital beauty Sid analysis
- What are the five standards for the dual prevention mechanism of hazardous chemical enterprises and what are the contents
猜你喜欢
systemd 管理 blackbox-exporter
榜样访谈——曾钰倬:从讲座中收获经验
文件操作——C语言
关于SAP APO RPMCALL 指定生产订单的BOM更新
Dota2参议院[贪心与队列]
2021年全国职业院校技能大赛网络搭建与应用之虚拟化配置答案
How can I sync previous online notes after OneNote is reinstalled or upgraded?
intel E3 V1 V2 V3 CPU 参数
Intelligent operation and maintenance scenario analysis: how to detect abnormal business system status through exception detection
机房动环监控系统的功能,动环监控系统的主要功能
随机推荐
How do we do full link grayscale on the database?
: empty pseudo class replaces JS to realize the prompt when it is empty
[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘
How to get the Apache official domain name mailbox? Exclusive interview with five new committers of Apache linkis
Meta最新图像生成工具火了,竟能把梦境画成现实!
数据分析从0到1----Numpy篇
[10:00 public class]: cloud video conference system privatization practice
Use of Zen
Intel E3 V1 V2 V3 CPU parameters
数据分析从0到1----Matplotlib篇
RESTful-URL设计规范
[red team] att & CK - active scanning
Network security competition C module batch value taking script
EN 1504-4:混凝土结构产品结构粘接—CE认证
面试三(多进程调用同一个动态库问题)
TCP 通信并发服务器详解(附有案例代码)
网络安全竞赛C模块批量拿值脚本
常用工具 (刘欣)
TypeScript—快速入门
这家初创公司想看看你的丁丁!他们用AI检测性疾病,保证数据匿名且加密,你愿意吗