从零复现PyTorch版(1)

从零复现PyTorch版(与行人车辆检测实战)(1)

1. 项目介绍

从零复现PyTorch版(1)_第1张图片
基于Pytorch的Yolov4代码更改

  • 支持训练异常中断时的从上次的epoch恢复
  • 构建和darknet相同的损失函数,不借助torch直接手写损失
  • 增加label_smooth标签平滑策略
  • 数据加载变包含dataloader模式和generator模式
  • 增加强大的数据验证脚本,包含map计算,准招率计算,错检漏检图片保存

2. 图像卷积和卷积神经网络

从零复现PyTorch版(1)_第2张图片
卷积核,步长与Padding巧妙配合
从零复现PyTorch版(1)_第3张图片
K:最后生成的特征图尺寸
n:原始输入的图片或者特征图尺寸
p:Padding的数量
s:卷积的步长
Yolov4中的下采样操作:
f=3, p=1, s=2
(弃用了max_polling)
Yolov4中的保持尺寸不变卷积操作:
f=3, p=1, s=2

3. Maxpolling层和全连接层

从零复现PyTorch版(1)_第4张图片

4. 全连接层原理和操作

从零复现PyTorch版(1)_第5张图片

5. 1X1卷积的用处?

灵活的降维和升维
减少参数量和计算量
从零复现PyTorch版(1)_第6张图片
1X1 Conv代替全连接层
从零复现PyTorch版(1)_第7张图片
YOLO中使用1X1卷积的设计思路
从零复现PyTorch版(1)_第8张图片

6. 想当年一个softmax打天下

从零复现PyTorch版(1)_第9张图片

7. 用sigmod来代替softmax

在这里插入图片描述

1.假设当前有N个类别,等同于使用N个sigmod函数作为输出来替代多分类的softmax
2.这么做并不是谁好谁怀,而是根据你数据类别是否互斥
3.如果类别是非黑即白的可以使用softmax,否则使用多个sigmod,比如人,男人,小孩,3个类别,则必须使用sigmod
4.对于sigmod计算损失函数时,常使用二分类交叉熵
在这里插入图片描述
从零复现PyTorch版(1)_第10张图片

8. 激活函数

从零复现PyTorch版(1)_第11张图片
从零复现PyTorch版(1)_第12张图片

你可能感兴趣的:(pytorch,深度学习,人工智能)