深度学习
文章平均质量分 88
kuweicai
这个作者很懒,什么都没留下…
展开
-
Pytorch 混合精度训练(Automatic Mixed Precision)原理解析
默认情况下,大多数深度学习框架(比如 pytorch)都采用 32 位浮点算法进行训练。Automatic Mixed Precision(AMP, 自动混合精度)可以在神经网络推理过程中,针对不同的层,采用不同的数据精度进行计算,从而实现节省显存和加快速度的目的。Pytorch AMP 是从 1.6.0 版本开始的,在此之前借助 NVIDIA 的 apex 可以实现 amp 功能。Pytorch 的 AMP 其实是从 apex 简化而来的,和 apex 的 O1 相当。AMP 里面的 Mixed原创 2022-08-15 08:08:05 · 3820 阅读 · 1 评论 -
目标检测中目标框回归损失函数(IoU, GIoU, DIoU, CIoU)总结
目标检测中目标框回归损失函数(IoU, GIoU, DIoU, CIoU)总结1. Smooth L1 Loss这个是 Faster-RCNN 中的损失函数。具体可以参考深度学习目标检测之 R-CNN 系列:Faster R-CNN 网络详解 中相应介绍。Smooth L1 Loss 相比 L1 和 L2 的优势可以参考 损失函数:L1 loss, L2 loss, smooth L1 loss。总结其优势就是:smooth L1和L1-loss函数的区别在于,L1-loss在0点处导数不唯一,可原创 2021-09-29 15:08:39 · 2889 阅读 · 0 评论 -
Pytorch 并行训练(DP, DDP)的原理和应用
Pytorch 并行训练(DP, DDP)的原理和应用1. 前言并行训练可以分为数据并行和模型并行。模型并行模型并行主要应用于模型相比显存来说更大,一块 device 无法加载的场景,通过把模型切割为几个部分,分别加载到不同的 device 上。比如早期的 AlexNet,当时限于显卡,模型就是分别加载在两块显卡上的。数据并行这个是日常会应用的比较多的情况。每一个 device 上会加载一份模型,然后把数据分发到每个 device 并行进行计算,加快训练速度。如果要再细分,又可以分原创 2021-09-27 20:18:10 · 19775 阅读 · 7 评论 -
3D 池化(MaxPool3D) 和 3D(Conv3d) 卷积详解
3D 池化(MaxPool3D) 和 3D(Conv3d) 卷积详解池化和卷积的过程是类似的,只是池化没有权重,相比起来更容易说明计算的过程。这里从 3D 池化开始详细接受 MaxPool3D 和 Conv3d 的过程,并尝试通过 2D 和 1D 的池化来实现 3D 池化的过程。3D (池化或者卷积)相比 2D 增加了一个维度,但是大致过程依然和 2D 类似,所以在看 3D 之前应该确保已经清楚 2D 的过程了,如果对 2D 不熟悉的朋友,可以参考 动图详细讲解 LeNet-5 网络结构,里面有动图演示原创 2021-09-11 09:22:02 · 19407 阅读 · 7 评论 -
目标检测 YOLO 系列:你有我无 YOLOX
目标检测 YOLO 系列:你有我无 YOLOX作者:Zheng Ge发表时间:2021Paper 原文:YOLOX: Exceeding YOLO Series in 20211. 概览那边 YOLOv5 还在不断更新,这边旷世 YOLOX 又开了新头了,真是一幅百舸争流啊。。。当然作为一名工业界的搬运工,还是很兴奋的,又有新的砖可以搬了。YOLOX 一出,各种公众号“吊打一切”,“秒天秒地” 的声音就出来了,真有这么神?作为一名搬运工,我觉得单从工业应用的角度,吸引力没有那么大,因为精度提升不大原创 2021-08-15 12:30:22 · 1373 阅读 · 0 评论 -
Pytorch LSTM 代码解读及自定义双向 LSTM 算子
Pytorch LSTM 代码解读及自定义双向 LSTM 算子1. 理论关于 LSTM 的理论部分可以参考PaperLong Short-Term Memory Based Recurrent Neural Network Architectures for Large Vocabulary Speech Recognition解析Understanding LSTM Networks人人都能看懂的LSTMPytorch LSTM 算子LSTM 文档2. 源代码python原创 2021-07-13 16:02:21 · 4343 阅读 · 3 评论 -
深度学习中常用的优化算法(SGD, Nesterov,Adagrad,RMSProp,Adam)总结
深度学习中常用的优化算法(SGD, Nesterov,Adagrad,RMSProp,Adam)总结1. 引言在深度学习中我们定义了损失函数以后,会采取各种各样的方法来降低损失函数,从而使模型参数不断的逼近于真实数据的表达。不过损失函数的数值只是我们用来优化模型中参数的一个参考量,我们是通过优化损失函数来间接地优化模型参数,并提高模型的度量指标。而优化算法的作用就是加快模型的收敛,取得最优值。...原创 2019-11-10 15:14:58 · 5189 阅读 · 1 评论 -
数据增强(Data Augmentation)系列: SnapMix 原理及应用
数据增强(Data Augmentation)系列: SnapMix作者:Shaoli Huang发表时间:2020Paper 原文: SnapMix: Semantically Proportional Mixing for Augmenting Fine-grained Data、官方开源代码:https://github.com/Shaoli-Huang/SnapMixSnapMix 是由 Shaoli Huang 等人提出的一种针对细粒度数据增强的方法。论文于 2020 年 12 月 9原创 2020-12-28 23:55:47 · 2873 阅读 · 1 评论 -
FPN(Feature Pyramid Networks) 网络
FPN 网络1. 前言通常在神经网络中,浅层特征图(feature maps)的感受野比较小,包含语义信息比较少,但是其空间位置信息准确,而深层网络,感受野大,语义信息强,但是由于 pooling 等造成了像素位置信息丢失等,所以空间位置信息比较粗糙。但是对于检测任务,往往既需要语义信息(分类),也需要位置信息(bbox),此外由于深层特征图往往被压缩到比较小的size,也会影响小目标的检测,...原创 2020-04-03 21:46:52 · 1986 阅读 · 0 评论 -
深度学习笔记——全连接神经网络样例程序及详细注释
全连接神经网络(fully connected neural network),顾名思义,就是相邻两层之间任意两个节点之间都有连接。全连接神经网络是最为普通的一种模型(比如和CNN相比),由于是全连接,所以会有更多的权重值和连接,因此也意味着占用更多的内存和计算。本文将分为两部分,第1部分介绍了一个完整的全连接神经网络的样例程序,并对程序中的函数进行了详细的注解。第2部分结合tensorflo...原创 2018-04-02 23:07:06 · 11040 阅读 · 0 评论 -
Tensorflow中ExponentialMovingAverage的原理及用法
整理自以下两篇博客:1).tensorflow ExponentialMovingAverage2).Tensorflow深度学习之九:滑动平均模型一. 滑动平均的作用ExponentialMovingAverage()滑动平均模型的作用是提高测试值上的健壮性。那它是如何实现这个功能的呢?其实滑动平均模型的原理就是一阶滞后滤波法,其表达式如下:new_value=(...原创 2018-05-30 22:55:09 · 9353 阅读 · 2 评论 -
win10 下 caffe 的第一个测试程序(附带详细讲解)
https://github.com/pglushkov/LBG_VQ/tree/master/lbg_vq_cpp原创 2019-05-25 23:53:48 · 1918 阅读 · 1 评论 -
深度学习目标检测之 R-CNN 系列:用 Faster R-CNN 训练自己的数据(caffe 版)
深度学习目标检测之 R-CNN 系列:用 Faster R-CNN 训练自己的数据深度学习目标检测之 R-CNN 系列包含 3 篇文章:从 R-CNN 和 Fast R-CNN 到 Faster R-CNNFaster R-CNN 网络详解用 Faster R-CNN 训练自己的数据1. 前言由于 原文 中提到了三种训练方法,在 py-faster-rcnn 中给出了两种训练方法,...原创 2020-03-19 23:18:10 · 977 阅读 · 3 评论 -
深度学习目标检测之 R-CNN 系列:Faster R-CNN 网络详解
深度学习目标检测之 R-CNN 系列:Faster R-CNN 网络详解深度学习目标检测之 R-CNN 系列包含 3 篇文章:从 R-CNN 和 Fast R-CNN 到 Faster R-CNNFaster R-CNN 网络详解用 Faster R-CNN 训练自己的数据1. 前言这一篇文章主要是深入的理解 Faster R-CNN 网络。并基于 caffe 利用 Faster ...原创 2020-03-19 23:11:57 · 1074 阅读 · 0 评论 -
深度学习目标检测之 R-CNN 系列: 从 R-CNN 和 Fast R-CNN 到 Faster R-CNN
深度学习目标检测之 R-CNN 系列: 从 R-CNN 和 Fast R-CNN 到 Faster R-CNN深度学习目标检测之 R-CNN 系列包含 3 篇文章:从 R-CNN 和 Fast R-CNN 到 Faster R-CNNFaster R-CNN 网络详解用 Faster R-CNN 训练自己的数据1. 前言这一篇文章主要是从 R-CNN 的发展历程来介绍各个版本的 R...原创 2020-03-19 23:05:57 · 673 阅读 · 0 评论 -
Caffe编译时提示 CUDNN 版本不兼容的解决办法
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2020-01-02 22:01:41 · 1543 阅读 · 0 评论 -
MobileNet实战:基于 MobileNet 的人脸微表情分类(Caffe)
MobileNet实战:基于 MobileNet 的人脸微表情分类(Caffe)这一部分内容总共由下面四篇文章组成:MobileNet 进化史: 从 V1 到 V3(V1篇)MobileNet 进化史: 从 V1 到 V3(V2篇)MobileNet 进化史: 从 V1 到 V3(V3篇)MobileNet实战:基于 MobileNet 的人脸表情分类1. 前言前面我们已经简要介...原创 2019-12-21 22:10:51 · 2473 阅读 · 0 评论 -
MobileNet 进化史: 从 V1 到 V3(V3篇)
MobileNet 进化史: 从 V1 到 V3(V3篇)这部分内容总共由如下 3 篇文章构成。MobileNet 进化史: 从 V1 到 V3(V1篇)MobileNet 进化史: 从 V1 到 V3(V2篇)MobileNet 进化史: 从 V1 到 V3(V3篇)1. 前言V3 保持了一年一更的节奏,Andrew G. Howard 等于 2019 年又提出了 MobileN...原创 2019-11-26 23:34:43 · 3080 阅读 · 0 评论 -
MobileNet 进化史: 从 V1 到 V3(V2篇)
MobileNet 进化史: 从 V1 到 V3(V2篇)这部分内容总共由如下 3 篇文章构成。MobileNet 进化史: 从 V1 到 V3(V1篇)MobileNet 进化史: 从 V1 到 V3(V2篇)MobileNet 进化史: 从 V1 到 V3(V3篇)1. 前言Andrew G. Howard 等于 2018 年在 MobileNet V1 的基础上又提出了改进版...原创 2019-11-26 23:25:51 · 2982 阅读 · 0 评论 -
MobileNet 进化史: 从 V1 到 V3(V1篇)
MobileNet 进化史: 从 V1 到 V3(V1篇)这部分内容总共由如下 3 篇文章构成。MobileNet 进化史: 从 V1 到 V3(V1篇)MobileNet 进化史: 从 V1 到 V3(V2篇)MobileNet 进化史: 从 V1 到 V3(V3篇)1. 前言MobileNet V1 是 Andrew G. Howard(Google Inc.) 等人于 201...原创 2019-11-26 23:22:15 · 4094 阅读 · 0 评论 -
手撕神经网络:从零开始实现一个简单的神经网络(python)
手撕神经网络:从零开始实现一个简单的神经网络1. 前言现在有很多深度学习平台可以用,甚至我们根本不需要知道网络背后是怎么运行的,就可以训练出我们想要的模型,但是从学习的角度,从零开始写一个简单的神经网络是有必要的,它将有助于理解神经网络的工作原理。之前有写过基于 TF 的全连接神经网络的实现,可以参考深度学习笔记——全连接神经网络样例程序及详细注释。但是这里将不借助任何深度学习平台来实现一个...原创 2019-11-14 22:24:38 · 2097 阅读 · 0 评论 -
Windows下如何利用caffe自带的convert_imageset.exe工具制作数据集
Windows下如何利用caffe自带的convert_imageset.exe工具制作数据集1. 前言网上的教程绝大多数通过shell脚本调用convert_imageset.exe来制作数据集,可是对于windows下的用户来说使用shell并不是很方便,本文是通过batch文件(当然直接用 cmd 命令也ok)调用convert_imageset.exe来制作数据集。2. conver...原创 2019-07-02 23:15:07 · 853 阅读 · 0 评论 -
深度神经网络中常用的激活函数的优缺点分析
深度神经网络中常用的激活函数的优缺点分析本文主要总结了深度神经网络中常用的激活函数,根据其数学特性分析它的优缺点。在开始之前,我们先讨论一下什么是激活函数(激活函数的作用)?如果将一个神经元的输出通过一个非线性函数,那么整个神经网络的模型也就不在是线性的了,这个非线性函数就是激活函数。 显然非线性函数具有更强的表达能力。引入非线性函数作为激励函数,这样深层神经网络表达能力(泛化能力)就更加强...原创 2019-06-27 23:32:36 · 14980 阅读 · 5 评论 -
深度学习中常用的参数初始化方法及caffe中的初始化方法介绍
深度学习中常用的参数初始化方法及caffe中的初始化方法介绍本文首先介绍了深度学习中常用的权重初始化方法,然后介绍 caffe 中的初始化方法的使用。1. 深度学习中常用的权重初始化方法1.1 随机初始化(Gaussian)顾名思义就是将权重在符合某一分布 (通常是高斯分布) 的情况下进行随机始化。 操作非常的简单, 但是也有它自身的一些问题。当网络的层数比较深时,输出会快速的趋向于零,从...原创 2019-08-07 22:17:36 · 1853 阅读 · 0 评论 -
如何调用 caffe 训练好的模型对输入图片进行测试
如何调用 caffe 训练好的模型对输入图片进行测试该部分包括两篇文章win10 下 caffe 的第一个测试程序(附带详细讲解) 主要讲解如何利用 caffe 来训练模型。如何调用 caffe 训练好的模型对输入图片进行测试 主要介绍利用已经训练好的模型进行预测。对 caffe 来说常用的有两种接口,一种是通过 C++ 接口, 另一种是通过 python 接口。这里以 caffe 中...原创 2019-08-18 20:49:31 · 2297 阅读 · 0 评论 -
详说Normalization(Batch Normalization,Layer Normalization,Instance Normalization,Group Normalization)
详说各种 NormalizationBatch Normalization 是 Sergey 等人于2015年在 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中提出的一种归一化方法。在开始讨论之前, 我们需要先探讨一个问题, 对于深度神经网络而言, 什么...原创 2019-08-27 23:40:06 · 2491 阅读 · 0 评论 -
Ubuntu16.04 + Opencv3.4.2 + python3.5 + caffe
https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/https://www.pyimagesearch.com/2015/07/20/install-opencv-3-0-and-python-3-4-on-ubuntu/原创 2019-09-21 11:47:03 · 774 阅读 · 0 评论 -
动图详细讲解 LeNet-5 网络结构
LeNet-5 动图详细讲解网络结构LeNet-5 是 Yann LeCun 等人在1998年设计的用于手写数字识别的卷积神经网络,当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经网络中最有代表性的实验系统之一。本文将重点讲解LeNet-5的网络参数计算和实现细节。1. LeNet-5全貌LeNet-5是一个7层卷积神经网络(一般输入层不计)。上图已经清晰的标明了各层...原创 2019-06-22 20:28:51 · 13265 阅读 · 4 评论