前言

训练神经网络是一件非常耗费时间的事情,其需要大量的算力以及大量的数据。显然从头开始训练并不是明智之选,利用好已有的资源才是明智之选。

微调技术

图像识别笼统地可以分为两步:

  1. 提取图片的特征,此部分往往通过CNN卷积神经网络实现。
  2. 根据提取的特征,进行分类,此部分往往通过全连接神经网络来实现。
  • 识别一只猫和识别一只狗有没有类似的地方呢?
    答案是有的,它们在提取图片特征都是非常相似的。
    考虑CNN中卷积的作用,它就是在识别不同的边缘,因此无论是猫,还是狗,图片特征都是类似的,但是如何根据这些特征来学习才是关键。

预训练模型

在图像识别中,有许多经典的神经网络,例如vgg,resnet等,对于这些经典的网络,pytorch都是提供了训练模型好的模型的。这些某些都是在ImageNet上训练好的,有较高的精确度。利用训练好的某些进行图片特征的提取,就能够大大减少训练的耗时。

代码实现

import torch
from torch import nn
from torch.nn import functional as F
from torchsummary import summarynet = torchvision.models.resnet18(pretrained=True)net.fc = nn.Linear(net.fc.in_features, 5)
nn.init.xavier_uniform_(net.fc.weight)
summary(net , input_size=(3,224,224) , device="cpu")lr = 0.0005
loss = nn.CrossEntropyLoss(reduction="mean")params_1x = [param for name, param in net.named_parameters()if name not in ["fc.weight", "fc.bias"]]
trainer = torch.optim.SGD([{'params': params_1x},{'params': net.fc.parameters(),'lr': lr * 80}],lr=lr, weight_decay=0.001)
epochs = 15

其实非常简单,甚至比自己完全手动定义神经网络都简单,因为它完全不需要自己定义网络结构。
但是这些与训练模型并不是能够直接拿过来就能使用的,还需要一些修改:

  1. 修改最后的类别数
    在ImageNet中,其最后的全连接层是一个输出为100010001000的向量,也就是代表着100010001000个类别,在实际中,需要根据当前识别认为的类别数进行修改。
  2. 学习率
    一般来说,预训练好的参数无需修改,可以将其设为无需学习的参量,也可以将其的学习率设置的非常小。而对于最后的全连接层,也就是对提取出来的图片信息进行分类的网络,其学习率就要比较大了。

作用与意义

微调技术可谓是没有足够算力人的福音了,其大大减少了训练的成本。

  1. 提取图像特征的CNN网络往往更加靠近输入,通过梯度反向传播进行训练,往往需要比靠近输出的全连接网络更耗费时间。
  2. 利用微雕技术,可以在极短的时间内得到一个非常好的结果,在5轮迭代之后就已经可以达到91%的正确率了;15轮迭代就能达到97%的正确率。

不足与局限性

并不是所有情况都能使用微调技术的,在图片特征出现显著差异的时候,使用微调技术往往不能得到满意的结果。
比如,在ImageNet上训练的模型都是基于正常图片的,但是如果将它用于识别医学影像(X光片等)就会导致失败。同样用这个模型去识别卡通图片也往往会识别。

【pytorch】微调技术相关推荐

  1. 超大规模智能模型相关工作总结:编程实现框架、算法模型、微调技术和应用...

    ©PaperWeekly 原创 · 作者 | 金金 单位 | 阿里巴巴研究实习生 研究方向 | 推荐系统 简介 近日,超大规模的智能模型越来越受到大家的关注,但是仅仅依赖于超大的计算资源并不足以完成这 ...

  2. 大规模语言模型微调技术——Instruction和Question的区别和联系

    1. 引言 在ChatGPT的时代,每个人都能够轻松使用这一强大的语言模型.这一切的实现速度比我之前所想象的要快得多.这得益于大规模语言模型微调技术,其实并没有引入太多新颖的元素.特别是有了ChatG ...

  3. pytorch微调bert_北大、人大联合开源工具箱UER,3 行代码完美复现BERT、GPT

    本文由AI研习社用户张正投稿,来稿见文末联系方式 作者 | 张正 单位 | 清华大学 编辑 | Camel 现存的预训练模型中没有一种可以完美的适用于所有任务,这也给预训练模型的选择带来困难. 对于这 ...

  4. pytorch微调bert_小版BERT也能出奇迹:最火的预训练语言库探索小巧之路

    选自Medium 作者:Victor Sanh 机器之心编译 参与:魔王 过去一段时间,大模型层出不穷.在大家纷纷感叹「大力出奇迹」的时候,作为调用预训练语言模型最流行的库,HuggingFace 尝 ...

  5. pytorch微调bert_香侬读 | RoBERT: 没错,我就是能更强——更大数据规模和仔细调参下的最优BERT

    文章标题:RoBERTa: A Robustly Optimized BERT Pretraining Approach 文章作者:Yinhan Liu, Myle Ott, Naman Goyal, ...

  6. Facebook 又搞事,违反竞业协议被起诉,PyTorch 关键技术疑侵权

    作者 | 神经星星 来源 | HyperAI超神经(ID:HyperAI) 头图 | 付费下载自视觉中国 近期,一纸诉讼书引起社区的广泛讨论.该诉讼由创业公司 Neural Magic 发起,指控 F ...

  7. 大模型微调技术(Adapter-Tuning、Prefix-Tuning、Prompt-Tuning(P-Tuning)、P-Tuning v2、LoRA)

    2022年11月30日,ChatGPT发布至今,国内外不断涌现出了不少大模型,呈现"百模大战"的景象,比如ChatGLM-6B.LLAMA.Alpaca等模型及在此模型基础上进一步 ...

  8. 天桥调参师秘籍:一份深度学习超参微调技术指南

    随着深度学习的兴起,越来越多的人从事算法工程师这一岗位.有时候他们自嘲自己为"天桥调参师".当然,算法工程师的工作内容并没有那么简单,因为设置超参数的过程需要专业知识和广泛的试验和 ...

  9. 【深度学习】PyTorch深度学习技术生态

    PyTorch Author:louwill Machine Learning Lab 随着近几年的大力发展,PyTorch逐渐成为主流的深度学习框架.相应的PyTorch技术生态也逐渐丰富和完善.本 ...

  10. 最全ChatGPT技术汇总

    作者:邱震宇(华泰证券股份有限公司 算法工程师) 来自:AINLP 链接:https://zhuanlan.zhihu.com/p/613698929 最近ChatGPT可以说是火遍了全世界,作为由知 ...

最新文章

  1. 城市大脑不仅是AI系统,更是结合人类智慧的混合智能巨系统
  2. java计算器程序加编辑帮助_这里有个JAVA计算器的小程序,希望帮忙加下注释,少许修改...
  3. 【干货】运维,你是青铜还是王者?
  4. GDCM:gdcm::Trace的测试程序
  5. 大数据hadoop资源网址
  6. java servlet接口开发_servlet三种实现方式之一实现servlet接口
  7. P2580-于是他错误的点名开始了【Trie,字符串】
  8. Tomcat 内存调大
  9. 山寨威武 仿冒Xoom先于行货获得Android 4.0升级
  10. apiclod 上传图片_Apicloud——关于上传图片、视频(二)
  11. 应用程序_构建应用程序12 条参考准则
  12. python正则表达式教程_Python中正则表达式的巧妙使用一文包你必掌握正则,
  13. Windows下React Native开发01 -- Android开发环境搭建
  14. Go语言基础之10--面向对象编程2之方法
  15. spring学习(五)—AOP相关术语
  16. 安装VSS 2005中遇到的一些问题和解决方法
  17. java bmp 变色_java怎么实现将 bmp图片黑底白字转换为白底黑字?将白色设置为透明色,谢谢...
  18. redis分布式锁和调度锁
  19. Yapi接口平台个人总结
  20. CSS-flex弹性布局补充

热门文章

  1. 前端骨架屏终极方案——骨架图
  2. Android程序员简历
  3. 二手房交易有哪些税费?
  4. 听力1-10中的不熟悉的单词
  5. 苹果前置摄像头拍出来是反的怎么调_苹果前置摄像头拍照是反的怎么办
  6. mongodb插入查询速度测试
  7. 冰桶大作战怎么玩_开源领导者接受冰桶挑战
  8. win7未能成功安装驱动服务器,win7找不到驱动程序提示“未能成功安装设备驱动程序”的解决方法...
  9. 通过ajax单独上传图片
  10. 生活里不能只有苦涩,不堪,适当露出一条缝隙,让光透进来