![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
文章平均质量分 91
羊藤枝
这个作者很懒,什么都没留下…
展开
-
模型量化论文阅读#4----EWGS:Network Quantization with Element-wise Gradient Scaling
在量化中,因为量化函数是不可微分的,所以一旦涉及到量化函数的反向传播时,就需要对量化函数的梯度进行近似,目前常用的近似是STE,从而避免量化函数的零梯度问题。所谓STE就是一个直通器,它只是传播相同的梯度而不考虑量化函数的输入和输出之间的离散误差。这篇论文就针对STE的缺点提出了一种元素级的梯度放缩算法,叫做EWGS。给定量化函数量化输出的梯度,EWGS自适应地放大或缩小每个梯度元素,并使用缩放后的梯度作为量化函数输入的梯度,通过反向传播来训练量化的网络。缩放是根据每个梯度元素的符号和量化函数的连续输入和离原创 2021-06-29 17:39:12 · 1154 阅读 · 0 评论 -
模型量化论文阅读#3----Up or Down? Adaptive Rounding for Post-Training Quantization
前言在量化中,常用的量化函数一般的四舍五入函数,即在量化时以0.5为阈值,当超过0.5时,结果为1;不超过0.5时,结果为0.这就是所谓的四舍五入函数。很多时候,直接进行四舍五入量化,结果往往不是最优的。为什么不是最优的,可以通过下面一个简单的例子来进行说明。对于一个训练好的网络来说,其权重为www,当进行量化时,可以把量化带来的权重的变化Δw\Delta wΔw视为一种扰动,那么由于扰动而带来的任务损失的变化表述为下式:这里主要用到了二阶泰勒展开。因为网络权重已经训练收敛,一阶项一阶接近0,所以忽原创 2021-06-02 20:20:07 · 1145 阅读 · 2 评论 -
训练过程中,内存占用一直升高的原因
记录训练过程中遇到的一个问题,如下图所示,训练过程中内存占用一直不断升高。一会内存就涨为了下图所示:经常筛查,发现问题出现在下述代码中: for w, flag, op in zip(weights,flags,self._ops): if flag >= 2: result += w * op(x) self._resource_size[index] = op.size原创 2020-12-21 16:24:40 · 3993 阅读 · 5 评论 -
nvcc fatal : Unsupported gpu architecture ‘compute_86‘
GPU: RTX3090Linux: Ubuntu 16.04pytorch: 1.7.0python: 3.7.9cuda version: V11.0.194GCC version: 5.2.0安装apex的过程中,按照官网的教程真是一波三折~官网的教程如下:git clone https://github.com/NVIDIA/apexcd apexpip install -v --disable-pip-version-check --no-cache-dir --global原创 2020-12-14 15:58:40 · 17141 阅读 · 27 评论 -
pytorch遇到的bug记录—1
1.ValueError: can’t optimize a non-leaf Tensor主要原因:torch.optim优化的参数必须满足is_leaf = True。问题来源:我自定义网络的训练参数,如下:self.alpha = torch.nn.Parameter(torch.zeros(self._k, encoding_length).cuda().requires_grad_())此时self.alpha.is_leaf = True就是说这时的定义还没有问题。但是我后面有需原创 2020-06-11 12:25:50 · 1721 阅读 · 2 评论 -
带有dilation的conv卷积输出尺寸的计算公式
对于conv卷积输出尺寸的计算公式:原创 2019-08-22 17:36:47 · 9255 阅读 · 2 评论 -
基于深度学习的目标检测算法3----Faster RCNN && MaskRCNNN
什么是end to end ?端到端指的是输入是原始数据,输出是最后的结果,只关心输入和输出,中间的步骤全部都不管。原来输入端不是直接的原始数据,而是在原始数据中提取的特征....原创 2019-07-16 17:06:02 · 423 阅读 · 0 评论 -
CUDA:out of memory
记录一下,在利用GPU训练maskRCNN 过程中遇到的一个小问题,CUDA:out of memory这个问题主要是由于GPU上显存不够引起的,由于我在服务器上跑的,因为有其他人同时在用这块GPU,所以导致显存不够.首先查看GPU的运行情况,linux系统,在终端输入:watch -n 0.2 nvidia-smiwindow系统,在文件夹C:\Program Files\NVID...原创 2019-07-18 15:14:42 · 2307 阅读 · 0 评论 -
基于深度学习的目标检测算法2----Fast RCNN
基于深度学习的目标检测算法2----Fast RCNN1. 学习一些基础知识:SVD1.1普通方阵的矩阵分解(EVD)方阵特征分解满足以下公式:A=UΛU−1A=U \Lambda U^{-1}A=UΛU−1其中,U 的列向量是 A 的特征向量,Λ 是对角矩阵,Λ 对角元素是对应特征向量的特征值。值得注意的是,特征向量都是单位矩阵,相互之间是线性无关的,但是并不正交。得出的结论是对...原创 2019-07-11 17:02:51 · 382 阅读 · 0 评论 -
3.2 迁移学习(transfer learning)
%matplotlib inline3.2 迁移学习(transfer learning)关于迁移学习的一些基础知识可以参考王晋东的迁移学习手册:https://max.book118.com/html/2018/0902/5144341211001312.shtm迁移学习的意义何在?在实践中,很少有人从头开始训练整个卷积网络(随机初始化),因为拥有足够大小的数据集是相对罕见的。相反,通常...原创 2019-07-05 17:28:58 · 690 阅读 · 0 评论 -
基于深度学习的目标检测算法1----RCNN
基于深度学习的目标检测算法1----RCNN(Region with CNN features)Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE ...原创 2019-07-10 11:37:10 · 479 阅读 · 0 评论 -
铰链损失函数hinge loss VS 交叉熵损失函数
1.铰链损失函数hinge loss铰链损失函数(hinge loss)的思想就是让那些未能正确分类的和正确分类的之间的距离要足够的远,如果相差达到一个阈值Δ\DeltaΔ时,此时这个未正确分类的误差就可以认为是0,否则就要累积计算误差。具体介绍一下:假设对某一个输入xix_{i}xi进行分类,他的标签是yiy_{i}yi,通过一个函数f(xi,W)f\left(x_{i}, W\rig...原创 2019-06-28 17:44:56 · 8529 阅读 · 0 评论 -
3.1 利用MNIST数据集做手写数字识别
3.1 利用MNIST数据集做手写数字识别from __future__ import print_functionimport torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimimport torchvisionimport torchvision.transfo...原创 2019-06-27 21:16:57 · 253 阅读 · 0 评论 -
1.3 Neural Networks
1.3 Neural Networks使用torch.nn包来构建神经网络。上一讲已经讲过了autograd,nn包依赖autograd包来定义模型并求导。 一个nn.Module包含各个层和一个forward(input)方法,该方法返回output。例如:关于卷积神经网络的基础介绍,可以参考这里:https://github.com/zergtant/pytorch-handbook/...原创 2019-06-27 21:10:10 · 346 阅读 · 0 评论 -
1.4 使用torch包训练一个分类集
1.4 使用torch包训练一个分类集其中包含torchvision包,它包含了处理一些基本图像数据集的方法。这些数据集包括 Imagenet, CIFAR10, MNIST 等。除了数据加载以外,torchvision 还包含了图像转换器, torchvision.datasets 和 torch.utils.data.DataLoader。torchvision包不仅提供了巨大的便利,也避...原创 2019-06-24 17:39:00 · 408 阅读 · 0 评论 -
关于Adam优化算法
基础知识矩估计:一般有:原点矩和中心矩。随机变量X的n阶原点矩ana_{n}an定义为an=E(Xn)a_{n}=E\left(X^{n}\right)an=E(Xn)根据定义,我们可知: 一阶原点矩为 E(x)E(\mathrm{x})E(x)。 二阶原点矩为 E(x2)E\left(\mathrm{x}^{2}\right)E(x2)。因为样本与总体的原点矩是近似...原创 2019-06-27 16:03:28 · 2774 阅读 · 1 评论 -
深度学习--关于sofamax函数和交叉熵损失函数
1.softmax函数softmax函数表达式:softmax一般用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!转自https://www.cnblogs.com/alexanderkun/p/8098781.html2. 交叉熵损失函数公式如下:其中,x表示样本,n表示样本的总数,a表示预测的输出值,y表示真实值。那么,...原创 2019-06-24 12:58:38 · 588 阅读 · 0 评论 -
关于反向传播
神经网络的代价函数:J(Θ)=−1m[∑i=1m∑k=1Kyk(i)log(hΘ(x(i)))k+(1−yk(i))log(1−(hΘ(x(i)))k)]+λ2m∑l=1L−1∑i=1sl∑j=1sl+1(Θji(l))2\begin{aligned} J(\Theta)=&-\frac{1}{m}\left[\sum_{i=1}^{m} \sum_{k=1}^{K} y_...原创 2019-06-25 14:43:03 · 198 阅读 · 0 评论