《python深度学习》笔记---5.3-1、猫狗分类(使用预训练网络)

一、总结

一句话总结:

【小型图像数据集】:想要将深度学习应用于小型图像数据集,一种常用且非常高效的方法是使用预训练网络。

【用卷积层提取的特征】:使用在ImageNet 上训练的VGG16 网络的卷积基从 猫狗图像中提取有趣的特征,然后在这些特征上训练一个猫狗分类器。

1、预训练网络(pretrained network)?

【预训练网络是保存好的网络】:预训练网络(pretrained network)是一个保存好的网络,之前已在大型数据集(通常是大规模图像分类任务)上训练好。

【原始数据集足够大且足够通用】:如果这个原始数据集足够大且足够通用,那么预训练网络学到的特征 的空间层次结构可以有效地作为视觉世界的通用模型,因此这些特征可用于各种不同的计算机 视觉问题,即使这些新问题涉及的类别和原始任务完全不同。

【例如训练好分类动物的ImageNet用于猫狗分类】:假设有一个在 ImageNet 数据集(140 万张标记图像,1000 个不同的类别)上训练 好的大型卷积神经网络。ImageNet 中包含许多动物类别,其中包括不同种类的猫和狗,因此可 以认为它在猫狗分类问题上也能有良好的表现。

【预训练网络让小数据问题非常有效】:这种学到的特征在不同问题之间的可移植性,是深度学习与许多 早期浅层学习方法相比的重要优势,它使得深度学习对小数据问题非常有效。

2、使用预训练网络有两种方法?

特征提取(feature extraction)和微调模型(fine-tuning)

3、使用预训练网络之特征提取(feature extraction)?

【从新样本中提取出有趣的特征】:特征提取是使用之前网络学到的表示来从新样本中提取出有趣的特征。然后将这些特征输 入一个新的分类器,从头开始训练。

【取出之前训练好的网络的卷积基】:对于卷积神经网 络而言,特征提取就是取出之前训练好的网络的卷积基,在上面运行新数据,然后在输出上面 训练一个新的分类器

4、为什么仅重复使用卷积基?我们能否也重复使用密集连接分类器?

【卷积基学到的表示更加通用】:一般来说,应该避免这么做。原因在于卷积基学到的表示可能更加通用,因此更适合重复使用。

【卷积神经网络的特征图表示通用概念在图像中是否存在】:无论面对什么样的计算机视觉问题,这种特征图都可能很 有用。

【dense层学到的是分类的概率信息】:但是,分类器学到的表示必然是针对于模型训练的类别,其中仅包含某个类别出现在整 张图像中的概率信息。

【dense层舍弃了空间信息】:此外,密集连接层的表示不再包含物体在输入图像中的位置信息。密集 连接层舍弃了空间的概念,而物体位置信息仍然由卷积特征图所描述。如果物体位置对于问题 很重要,那么密集连接层的特征在很大程度上是无用的。

5、注意,某个卷积层提取的表示的通用性(以及可复用性)取决于该层在模型中的深度?

【前面是高通用特征,后面是抽象特征】:模型中更靠近底部的层提取的是局部的、高度通用的特征图(比如视觉边缘、颜色和纹理),而更 靠近顶部的层提取的是更加抽象的概念(比如“猫耳朵”或“狗眼睛”)。

【差异较大取卷积层前几层】:因此,如果你的新数 据集与原始模型训练的数据集有很大差异,那么最好只使用模型的前几层来做特征提取,而不 是使用整个卷积基。

二、内容在总结中

博客对应课程的视频位置:

python 动物分类_《python深度学习》笔记---5.3-1、猫狗分类(使用预训练网络)相关推荐

  1. Python深度学习(4):猫狗分类

    这个项目使用卷积神经网络,<Python深度学习>中使用了两个方法实现.一个是自己搭建卷积网络,另一个是直接使用VGG16.其中直接使用VGG16又可以分为抽取特征和微调模型两种方法. 1 ...

  2. octave深度学习_【深度学习笔记】(一)Octave

    [深度学习笔记](一)Octave Octave是一种面向科学数学运算的原型语言,内置了强大的数学函数及图形展示工具.原型prototyping设计的意思是使用ovtave进行算法设计.实现.验证等过 ...

  3. python搞笑语句_云计算开发学习笔记:Python3 import语句

    原标题:云计算开发学习笔记:Python3 import语句 想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下: 当解释器遇到 import 语句,如果模块在当前的 ...

  4. pytorch 三维点分类_基于深度学习的三维重建——MVSNet系列论文解读

    欢迎关注微信公众号"3D视觉学习笔记",分享博士期间3D视觉学习收获 MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河 ...

  5. 【深度学习笔记】自建交通标志分类数据集转换为MNIST数据格式

    文章目录 前言 一.自建交通标志分类数据集并做预处理 1.RGB图像转灰度图像 2.灰度图像缩放为28*28尺寸 二.转换为MNIST数据格式 1.转换代码如下 2.转换过程打印如下 3.最终转换结果 ...

  6. 【从零开始学习深度学习】48.Pytorch_NLP实战案例:如何使用预训练的词向量模型求近义词和类比词

    目录 1. 下载预训练的词向量 2. 应用预训练词向量 2.1 求近义词 2.2 求类比词 本文将介绍如何使用已经在大规模语料上预训练的词向量模型来求近义词和类比词. 1. 下载预训练的词向量 基于P ...

  7. python商业爬虫_商业爬虫学习笔记day1

    day1 一. HTTP 1.介绍: https://www.cnblogs.com/vamei/archive/2013/05/11/3069788.html http://blog.csdn.ne ...

  8. cocos2d python文档_【Cocos2D-X 学习笔记】Cocos2D-x 3.0+VS开发环境搭建[使用Python]

    上一节讲了如何用VS自带的项目管理器创建项目,该方法只适用于cocos2d-x 2.0版本,而cocos2d-x 3.0较之前版本在命名等方面有了较大更新,而cocos2d-x3.0不再支持用VS项目 ...

  9. 【深度学习笔记】使用knn实现特征向量分类

    这是一个使用knn把特征向量进行分类的demo. Knn算法的思想简单说就是:看输入的sample点周围的k个点都属于哪个类,哪个类的点最多,就把sample归为哪个类.也就是说,训练集是一些已经被手 ...

最新文章

  1. 终端输入参数:argparse和sys.argv[]的用法
  2. Oracle 数据库修改配置文件sga_target参数的值,sga_target值太小导致数据库服务起不来问题解决,调大sga_target参数方法
  3. swoole不是php,Swoole
  4. 自动化来势汹汹,未来的程序员该何去何从?
  5. 电气6机30节点数据介绍(常适用于优化调度)
  6. Liferay Portal学习笔记-coldTear
  7. HTML DOM console.table() 方法
  8. 让你不再害怕指针.pdf
  9. 数字图像处理图像反转的实现_反转8位数字| 8085微处理器
  10. Mybatis逆向工程使用方法
  11. linux 项目内存吃掉,Linux内存被吃掉了,它去哪里了?
  12. AWT_方位布局(Java)
  13. linux php 入侵,入侵linux教程 - 冷漠 ' Blog - Focus on Information Security !
  14. 拓端tecdat|r语言中使用Bioconductor 分析芯片数据
  15. 苹果鼠标右键怎么按_IOS13.4更新后的鼠标用途在哪?
  16. Win11系统电脑怎么C盘扩容教学
  17. 64位win7旗舰版java_win7 64位旗舰版下载_lenovo windows7 64位旗舰版笔记本专用系统_软件侠下载站...
  18. 2018年新浪微博产品笔试题目
  19. Java11实现X509TrustManager报错SSLHandshakeException分析及解决办法
  20. 数据结构二叉树的链式存储

热门文章

  1. 关于计算机基础知识的答疑讨论,“大学计算机应用基础”三维立体课程的研究与实践...
  2. python定义一个复数类complex、内有两个成员变量_python应用(5):变量类型与数据结构...
  3. C语言printf() 详解之终极无惑
  4. 2014年5月最后一周工作总结
  5. Delphi中MDI父窗体与子窗体菜单合并
  6. cad线性标注命令_CAD线性标注快捷键DLI,CAD标注快捷键大全
  7. 题解【洛谷】P1002 过河卒
  8. jQuery键盘输入文字打字动画特效
  9. html里的wbr标签什么意思(转)
  10. Linux系统命令——磁盘管理命令