精选文章 Fine-tuning

Fine-tuning

作者:Unindex 时间: 2019-11-11 10:47:45
Unindex 2019-11-11 10:47:45
原文链接:https://www.julyedu.com/question/big/kp_id/26/ques_id/2137

在实践中,由于数据集不够大,很少有人从头开始训练网络。常见的做法是使用预训练的网络(例如在ImageNet上训练的分类1000类的网络)来重新fine-tuning(也叫微调),或者当做特征提取器。

以下是常见的两类迁移学习场景:

1 卷积网络当做特征提取器。使用在ImageNet上预训练的网络,去掉最后的全连接层,剩余部分当做特征提取器(例如AlexNet在最后分类器前,是4096维的特征向量)。这样提取的特征叫做CNN codes。得到这样的特征后,可以使用线性分类器(Liner SVM、Softmax等)来分类图像。

2 Fine-tuning卷积网络。替换掉网络的输入层(数据),使用新的数据继续训练。Fine-tune时可以选择fine-tune全部层或部分层。通常,前面的层提取的是图像的通用特征(generic features)(例如边缘检测,色彩检测),这些特征对许多任务都有用。后面的层提取的是与特定类别有关的特征,因此fine-tune时常常只需要Fine-tuning后面的层。

预训练模型 

在ImageNet上训练一个网络,即使使用多GPU也要花费很长时间。因此人们通常共享他们预训练好的网络,这样有利于其他人再去使用。例如,Caffe有预训练好的网络地址Model Zoo。

何时以及如何Fine-tune

决定如何使用迁移学习的因素有很多,这是最重要的只有两个:新数据集的大小、以及新数据和原数据集的相似程度。有一点一定记住:网络前几层学到的是通用特征,后面几层学到的是与类别相关的特征。这里有使用的四个场景:

1、新数据集比较小且和原数据集相似。因为新数据集比较小,如果fine-tune可能会过拟合;又因为新旧数据集类似,我们期望他们高层特征类似,可以使用预训练网络当做特征提取器,用提取的特征训练线性分类器。

2、新数据集大且和原数据集相似。因为新数据集足够大,可以fine-tune整个网络。

3、新数据集小且和原数据集不相似。新数据集小,最好不要fine-tune,和原数据集不类似,最好也不使用高层特征。这时可是使用前面层的特征来训练SVM分类器。

4、新数据集大且和原数据集不相似。因为新数据集足够大,可以重新训练。但是实践中fine-tune预训练模型还是有益的。新数据集足够大,可以fine-tine整个网络。

 

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:基于Promise封装uni-app的request方法,实现类似axios形式的请求

下一篇:Java内容仓库Apache JackRabbit

您可能感兴趣

  • GPT3简介

    https://blog.csdn.net/xixiaoyaoww/article/details/106435833 2018年10月推出的BERT一直有着划NLP时代的意义,然而还有一个让人不能忽略的全程陪跑模型——OpenAI GPT(Generative Pre-Training)在以它的方式坚持着,向更通用的终极目标进发。 最初的GPT只是一个12层单向的Transformer,通...

  • sql server 性能_SQL Server硬件性能调整

    sql server 性能 SQL Server Performance Tuning can be a difficult assignment, especially when working with a massive database where even the minor change can raise a significant impact on the existing...

  • Xcode 12 beta 中的 Swift 新特性概览

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨Apple 来源丨知识小集(zsxjtip) Xcode 12 中集成了 Swift 5.3,并引入了许多新特性,包括语言层面、 Xcode 对 Swift 的支持、Swift Packages 包管理。WWDC 20 也有相应的 Sess...

  • sql server 入门_SQL Server查询调整入门

    sql server 入门 This article will cover some essential techniques for SQL query tuning. Query tuning is a very wide topic to talk about, but some essential techniques never change in order to tune qu...

  • Oracle SQL调优系列之SQL Monitor Report

    1、SQL Monitor简介 sql monitor是oracle官方提供的自动监控符合特定条件的SQL,用于收集执行时的细节信息的监控工具,常用于sql调优和系统性能监控 2、捕捉sql的前提 sql monitor 捕捉sql的前提: 并行执行的sql语句 单次执行消耗的CPU或IO超过5秒 statistics_level级别必须是TYPICAL 或者ALL 使用/* +MONITO...

  • 对CPU超线程与推理性能的一些理解

    最近在pytorch下面做模型推理,官网pytorch默认就用了MKLDNN做优化,在pytorch里MKLDNN的多核多线程的调度用了OpenMP来做控制,所以可以用设置OpenMP环境的方法来控制OpenMP的调度逻辑,这里面发现一些有趣的现象。 首先做一些代码修改以便在pytorch下面最大程度的利用MKLDNN加速 通过设置环境变量MKLDNN_VERBOSE=1来观察默认pytor...

  • Java8 官方jvm 标准参考 -XX 配置参数详细信息

    原文地址 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html 概要 java [ 选项 ] 类名 [ args ] java [ 选项 ] -jar 文件名 [ args ] 选项 命令行选项用空格分隔。请参阅选项。 班级名称 要启动的类的名称。 文档名称 要调用的Java归档(JAR)文件的名称。仅与-j...

  • Xcode 12 Beta 3 更新记录SwiftUI2

    Xcode 12 Beta 3发行说明 更新您的应用程序以使用新功能,并针对API更改测试您的应用程序。 总览 Xcode 12 beta 3包括适用于iOS 14,iPad OS 14,tvOS 14,watchOS 7和macOS 11的SDK。Xcode 12 beta 3版本支持针对iOS 9和更高版本,tvOS 9和更高版本以及watchOS 2和更高版本的设备上调试。 。Xcod...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。