FineTuning机制的分析

简介: FineTuning机制的分析为什么用FineTuning使用别人训练好的网络模型进行训练,前提是必须和别人用同一个网络,因为参数是根据网络而来的。当然最后一层是可以修改的,因为我们的数据可能并没有1000类,而只有几类。

FineTuning机制的分析

为什么用FineTuning

使用别人训练好的网络模型进行训练,前提是必须和别人用同一个网络,因为参数是根据网络而来的。当然最后一层是可以修改的,因为我们的数据可能并没有1000类,而只有几类。把最后一层的输出类别和层的名称改一下。用别人的参数、修改后的网络和自己的数据进行训练,使得参数适应自己的数据,这样一个过程,通常称之为微调(fine tuning). 也就是说,我们所拥有的数据很小,不足以训练一个网络,这是用别人训练过的参数以及网络训练我们自己的数据的过程就是微调(fine tuning)

怎么FineTunning

Fine tuning 之所以有效的原因是,用到的网络是同一个网络,用到的参数是别人已经训练好的数据,所以在准确率上会有保证,这时候再稍微调整别人训练好的参数,往往会能达到我们想要的效果。

调整net文件

因为我们自己的数据集变化了,所以要修改net网络文件,大部分的内容都不变,变的只有data层、output层、batch的大小、前几层的学习率。data层需要改成我们自己的数据,output层的修改主要包括层的名字(使用不同的名字,预训练网络中该层的参数会重新初始化)和输出类别数目,并且要减小batch的大小,但是要和GPU的大小成比例。

对于学习率的调整是很重要的,如果有的层的参数不需要更新,可以把学习率设置为0.比如有4个全连接层,希望C层的参数不会改变,C前面的AB层的参数也不会改变,这种情况也就是D层的梯度不往前反向传播到D层的输入blob(也就是C层的输出blob 没有得到梯度),你可以通过设置D层的学习率为0layer的梯度就不会反向传播了,前面的所有layer的参数也就不会改变了。对于有参数的更新的层,学习率可以减小10倍或100(最后一层除外),对于最后一层的学习率可以提高10倍,加快学习速率,因为该层需要重新学习。

调整solver文件

solver.prototxt文件中的参数一般只需要修改net训练网络的名称、学习率、最大迭代次数和snapshot。首先将net从预训练使用的net换为现在使用的net,然后降低学习率(一般降低10倍或者100),同时,将最大迭代次数和snapshot的数目相对减少。

Fine Tuning的原理

Fine tuning的原理就是利用已知的网络结构和已知的网络参数,修改output层为我们自己的层,微调最后一层前的所有层的参数,加大最后一层的学习率,因为最后一层我们需要重新学习,所以与其它层相比要有相对较大的学习率,这样就有效利用了深度神经网络强大的泛化能力,又免去了设计复杂的模型以及耗时良久的训练,所以fine tuning是当数据量不足时的一个比较合适的选择。

当神已无能为力,那便是魔渡众生
目录
相关文章
|
消息中间件 存储 负载均衡
消息队列 MQ使用问题之如何在grpc客户端中设置负载均衡器
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
存储 缓存 Kubernetes
Longhorn 云原生分布式块存储解决方案设计架构和概念
Longhorn 云原生分布式块存储解决方案设计架构和概念
1697 0
Longhorn 云原生分布式块存储解决方案设计架构和概念
|
设计模式 缓存 算法
带你手撸一个Kotlin版的EventBus
EventBus的优点有很多(现在来看也并不是优点):代码简洁,是一种发布订阅设计模式(观察者设计模式),简化了组件之间的通讯,分离了事件的发送者和接收者,而且可以随意切换线程,避免了复杂的和易错的依赖关系和生命周期问题
599 0
带你手撸一个Kotlin版的EventBus
|
设计模式 算法 开发者
嵌入式框架设计中的四种常用模式
嵌入式框架设计中的四种常用模式
393 0
|
安全 算法 测试技术
Python后端技术栈(一)
Python后端技术栈(一)
|
人工智能 自然语言处理 安全
支小蜜校园团餐系统赋能校园食堂打餐效率提升70%
支小蜜智慧校园-团餐系统赋能校园食堂管理能力、提升打餐效率、降低人工成本。
支小蜜校园团餐系统赋能校园食堂打餐效率提升70%
|
网络安全
【ES】elasticsearch在启动后出现[transport.netty][solr001] exception caught on transport layer[[[id:0x2d16759]]
elasticsearch在启动后出现[transport.netty][solr001] exception caught on transport layer[[[id:0x2d16759]]
705 0
|
存储 JSON 监控
大厂的OOM优化和监控方案(三)
大厂的OOM优化和监控方案(三)
大厂的OOM优化和监控方案(三)
|
缓存 资源调度 前端开发
003 umi 新手上高速,从空文件夹开始
003 umi 新手上高速,从空文件夹开始
869 0
003 umi 新手上高速,从空文件夹开始
|
弹性计算
阿里云服务器带宽价格:包括固定带宽费用和流量收费明细表
按固定带宽计费1M带宽一个月23元,按使用流量计费1GB流量0.8元,如果云服务器带宽使用率低于10%,那么首选按使用流量计费,如果带宽实际利用率较高的话,按固定带宽计费更划算一些。
1931 0
阿里云服务器带宽价格:包括固定带宽费用和流量收费明细表