分类标签归档:python

动手学习深度学习系列笔记——目标检测算法


44.物体检测算法:R-CNN,SSD,YOLO

目录

1.区域卷积神经网络

1.1.R-CNN

  • 使用启发式搜索算法来选择锚框
  • 使用预训练模型来对每个锚框抽取特征(每个锚框当作一个图片,用CNN)
  • 训练一个SVM来类别分类(神经网络之前,category pre

Read more

动手学习深度学习系列笔记——物体检测和数据集


- 41 物体检测和数据集

- 物体检测

- 边缘框实现

- 数据集

41 物体检测和数据集

物体检测

  1. 图片分类和目标检测在任务上的区别:图片分类已知有一个确定目标,任务是识别该目标属于何种分类,而目标检测不仅需要检测出图片中所有感兴趣的目标类别,并确定其位置,所以目标检测要比图片分类更复杂应用场景更广。
  2. 图片分类和目标检测在数据集上的区别:由于目标检测中每一张图片可能存在多个目标,每个目标我们不仅需要分类,还需要确定边缘框以给出目标位置信息,因此目标检测数据集的标注成本要显著高于图片分类,也就导致了目标检测数据集较小。
  3. 边缘框:用一个尽量小矩形框将目标物体大体框起来,边框的位置信息就可以表

Read more

动手学习深度学习系列笔记——实战Kaggle竞赛:CIFAR-10


CIFAR-10

1.目录

首先,导入竞赛所需要的包和模块:

import collections
import math
import os
import shutil
import pandas as pd
import torch
import torchvision
from torch import nn
from d2l import torch as d2l

2.1 下载数据集:

#@save
d

Read more

动手学习深度学习系列笔记——微调


微调

背景

  • 很多时候,例如我们想对家具进行分类,但是往往在努力收集数据得到的数据集也比较小假如我们想识别图片中不同类型的椅子,然后向用户推荐购买链接。 一种可能的方法是首先识别100把普通椅子,为每把椅子拍摄1000张不同角度的图像,然后在收集的图像数据集上训练一个分类模型。 尽管这个椅子数据集可能大于Fashion-MNIST数据集,但实例数量仍然不到ImageNet中的十分之一。 适合ImageNet的复杂模型可能会在这个椅子数据集上过拟合。 此外,由于训练样本数量有限,训练模型的准确性可能无法满足实际要求。为了避免这种情况,我们可以有两种方法:
    • 显然的想

Read more

动手学习深度学习系列笔记——数据增广


36 数据增广

目录

数据增广不仅用于处理图片,也可用于文本和语音,这里只涉及到图片。

1. 使用增强数据训练

采集数据得到的训练场景与实际部署场景不同是常见的问题,这种变化有时会显著影响模型表现。在训练集中尽可能模拟部署时可能遇到的场景对模型的泛化性十分重要。

数据增强是指在一个已有数据集上操作使其有更多的多样性。对语音来说可以加入不同的背景噪音,对图片而言可以改变其颜色,形状等。

一般来说不会先将数据集做增广后存下来再用于训练;而是直接在线生成,从原始数据中读图片

Read more

动手学习深度学习系列笔记——CPU和GPU


CPU和GPU

本节目录:

1.1 提升CPU利用率一:

  • 在计算a+b之前,需要准备数据
  • 主内存->L3->L2->L1->寄存器

    • L1访问延时:0.5ms
    • L2访问延时:7ns(14XL1)
    • 主内存访问延

Read more

动手学习深度学习系列笔记——残差网络resnet


目录

- 残差网络(ResNet)

- 函数类

- 残差块

- ResNet模型

- 训练模型

- 总结

残差网络(ResNet)

随着我们设计越来越深的网络,深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力,在ResNet这种网络中,添加层会使网络更具表现力

函数类

  • 假设有一类特定的神经网络架构F,它包括学习速率和其他超参数设置。 对于所有f∈F,存在一些参数集(例如权重和偏置),这些参数可以通过在合适的数据集上进行训练而获得。 现在假设f∗是我们真正想要找到的函数,如果是f∗∈F,那我们可以轻而易举的训练得到它,但通常我们不会那么幸运。 相反,我们将尝试

Read more

动手学习深度学习系列笔记——批量归一化


批量归一化

批量归一化

深层神经网络的训练,尤其是使网络在较短时间内收敛是十分困难的,批量归一化[batch normalization]是一种流行且有效的技术,能加速深层网络的收敛速度,目前仍被广泛使用。

训练深层网络时的问题

深度神经网络在训练时会遇到一些问题:

  • 收敛速度慢:
    • 由于训练时先正向传播后反向传播,且每层的梯度一般较小,若网络较深,则反向传播时会出现类似于梯度消失的现象,导致距离数据更近的层梯度较小,收敛慢,而距离输出更

Read more

动手学习深度学习系列笔记——GooLeNet


GooLeNet

目录

含并行连结的网络

  • GoogLeNet吸收了NiN中串联网络的思想,并在此基础上做了改进。我们往往不确定到底选取什么样的层效果更好,到底是3X3卷积层还是5X5的卷积层,诸如此类的问题是GooLeNet选择了另一种思路“小学生才做选择,我全都要”,这也使得GooLeNet成为了第一个模型中超过1000个层的模型。

Inception块

  • 在GoogLeNet中,基本的卷积块被称为Inception块(Inception block)

  • Inception块由四条并行路径

Read more

动手学习深度学习系列笔记——网络中的网络(NiN)


26-网络中的网络(NiN)

1. 动机

全连接层的问题

  • 卷积层需要的参数较少
  • 而卷积层后的第一个全连接层参数较多

以VGG为例(图示),全连接层需要先Flatten,输入维度为512x7x7,输出维度为4096,则需要参数个数为512x7x7x4096=102M。

2. NiN块

  • 核心思想:一个卷积层后面跟两个1x1的卷积层,后两层起到全连接层的作用。

3. NiN架构

  • 无全连接层
  • 交替使用NiN块和步幅为2的最大池化层
    • 逐步减小高宽和增大通道数
  • 最后使用全局平均池化得到输出
    • 其输入通道是类别数

4. NiN Networks

NiN架构如上图右边所示,若干个Ni

Read more