自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (3)
  • 收藏
  • 关注

原创 pyreverse+Graphviz 快速理清整个项目中的代码结构

下面就是生成的函数关系图了,其中包括不同class的参数、方法以及class之间的继承关系和调用关系,可以帮助快速理清代码的逻辑结构关系。记住其安装的路径,即pyreverse.exe的路径,将其添加到系统变量中。执行之后,当前路径下会生成类图classes.pdf。分析代码中的调用关系,帮助快速理清代码。

2023-08-27 14:02:48 522

原创 windows端通过ssh工具远程连接aws服务器时出现“permissions are too open”的错误

连接服务器出现permissions are too open的解决方法

2022-07-23 15:34:00 1036 1

原创 git clone : OpenSSL SSL_read: Connection was reset, errno 10054

使用git clone时出现:fatal: unable to access 'https://github.com/pytorch/pytorch/': OpenSSL SSL_read: Connection was reset, errno 10054在git窗口中输入下面命令修改git配置:$ git config --global http.sslVerify "false"此时又报错:fatal: unable to access 'https://github.com/pyt

2021-11-16 10:06:22 3638 1

原创 error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“: ht

最近在win10上使用python做某一个项目,中间在安装某个包时,遇到了下述错误:error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/可见,需要在电脑上安装Microsoft Visual C++ 14.0,但是在使用Microsoft Vi

2021-10-08 14:32:09 1117 3

原创 模型量化论文阅读#4----EWGS:Network Quantization with Element-wise Gradient Scaling

在量化中,因为量化函数是不可微分的,所以一旦涉及到量化函数的反向传播时,就需要对量化函数的梯度进行近似,目前常用的近似是STE,从而避免量化函数的零梯度问题。所谓STE就是一个直通器,它只是传播相同的梯度而不考虑量化函数的输入和输出之间的离散误差。这篇论文就针对STE的缺点提出了一种元素级的梯度放缩算法,叫做EWGS。给定量化函数量化输出的梯度,EWGS自适应地放大或缩小每个梯度元素,并使用缩放后的梯度作为量化函数输入的梯度,通过反向传播来训练量化的网络。缩放是根据每个梯度元素的符号和量化函数的连续输入和离

2021-06-29 17:39:12 1129

转载 转载:CVPR2021最新论文(已分类)

原文链接如下:https://github.com/extreme-assistant/CVPR2021-Paper-Code-Interpretation/blob/master/CVPR2021.md#Quantization

2021-06-25 10:28:44 1034

原创 模型量化论文阅读#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 1092 2

原创 模型量化论文阅读#1----综述:A Survey of Quantization Methods for Efficient Neural Network Inference

1. 量化的基本概念A. 问题设置和符号表示假设网络有L层,其每层的参数表示为:{W1,W2,…,WL}\left\{W_{1}, W_{2}, \ldots, W_{L}\right\}{W1​,W2​,…,WL​},用θ\thetaθ表示所有参数的集合,以监督学习问题为例,其目标函数为:L(θ)=1N∑i=1Nl(xi,yi;θ)(1)\mathcal{L}(\theta)=\frac{1}{N} \sum_{i=1}^{N} l\left(x_{i}, y_{i} ; \theta\right

2021-05-20 16:36:35 4950 2

原创 模型量化论文阅读#2----BRECQ: PUSHING THE LIMIT OF POST-TRAINING QUANTIZATION BY BLOCK RECONSTRUCTION

1. 相关基础量化基础知识在量化中,一个比较重要的概念是量化函数q(⋅)q(\cdot)q(⋅),即如何从一个浮点数值映射到具有特定宽度的量化值,即: q(⋅):R→Qbu,sym q(\cdot): \mathcal{R} \rightarrow \mathcal{Q}_{b}^{\text {u,sym }}q(⋅):R→Qbu,sym ​. 一般比较常用的量化函数是四舍五入函数,当前很多量化算法使用的是这个函数,比如PACT等。一般量化问题可以表示为下述的优化目标函数:mi

2021-05-20 11:17:35 4170 5

原创 如何将word自带的公式快速转为latex?

打开word,进行如下设置,选择复制内容格式为MathML:打开这个转换网站,进行图示操作即可。

2021-03-15 16:54:47 10858 6

原创 训练过程中,内存占用一直升高的原因

记录训练过程中遇到的一个问题,如下图所示,训练过程中内存占用一直不断升高。一会内存就涨为了下图所示:经常筛查,发现问题出现在下述代码中: 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 3741 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 16883 27

原创 在python中,为何调用logging模块却不能正常输出日志?

程序中明明正确使用了logging模块,却得不到应有的输出日志:这是为什么?经过参考这篇文章:python logging 模块配置咋不起作用了?才发现:是因为在上述调用logging模块前,已经使用了logging.info()语句,进而导致后面的调用不起作用。好吧,我大意了~ 没来得及仔细看~...

2020-12-11 10:32:27 6381 1

原创 linux 多用户环境下修改当前用户使用的cuda版本

背景:linux服务器上已经安装有多个cuda版本,同时有多个用户,如何修改自己用户下的cuda版本。在自己用户目录下新建一个指向要修改版本cuda文件夹的软连接,软连接建立方式: ln -s 源文件 目标文件在自己用户的根目录下找到.bashrc文件,然后使用vim ~/.bashrc打开该文件并修改:在该文件里加入上面三行命令。其中,前面的路径就是第一步建立的软连接文件夹的路径,上面路径下的cuda就是对服务器里对应版本cuda文件夹相应的软连接。使用source ~/.bashrc

2020-11-24 11:02:50 2169

原创 pytorch----如何在网络中额外添加可训练参数

我的目的是在一个卷积操作中额外添加一个可训练的参数,该参数可以控制该卷积层参数,我一开始的定义是这样的:1.先在__init__中定义该可训练参数:self.para = torch.nn.Parameter(torch.ones(1).to(device).requires_grad_())2.在forward中定义该参数的操作:self.conv.weight.data = torch.mul(self.conv.weight, self.para)return self.conv(x)可以

2020-06-20 22:44:43 7246 6

原创 pytorch遇到的bug记录—2

问题描述:我定义的网络模型除了原始的参数之外,还自定义了一组参数,这组参数也要参与训练,但是我在使用torch.nn.DataParallel 进行多GPU训练时,出现bug如下:Traceback (most recent call last): File "train_search.py", line 741, in <module> architecture.main() File "train_search.py", line 358, in main tra

2020-06-15 17:18:15 10772 4

原创 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 1426 1

原创 python ---- 为类定义动态属性

有一个需求,对一个定义的类class,我想实现为该类定义可以动态改变变量名的变量。locals函数可以实现动态变量名的定义,但是为某一类定义动态变量行不通,因为self.locals()并不能被识别。经过尝试,可以采用下述方法:调用该类下的__dict__,python的类对象的属性储存在的__dict__中。__dict__是一个词典,键为属性名,值对应属性的值。更准确来说,是调用...

2020-04-11 18:48:11 592

原创 使用模型压缩库Distiller遇到的问题

KeyError: "param 'initial_lr' is not specified in param_groups[0] when resuming an optimizer"在使用下面命令训练mobilenetV1模型时,为了加快速度,我从网上下载了一个预训练模型mobilenet_sgd_68.848.pth.tar,结果如下设置时,报错如上。python3 compress_c...

2020-04-02 10:55:13 2432 3

原创 pytorch 多GPU训练遇到的坑

在打算由单GPU转成多GPU时,使用:self.model = self.model.cuda(device=device_ids[0]) self.model = torch.nn.DataParallel(self.model,device_ids=device_ids)设置后,出现报错,报错显示读取不到模型的参数,原因是因为经过DataParallel包装...

2019-09-25 14:56:49 4318

原创 关于使用CV2读取图片并用tensorboardX显示图片时,图片发蓝的原因

关于使用CV2读取图片并用tensorboardX显示图片时,图片发蓝的原因

2019-09-23 14:27:10 1682

原创 ssds目标检测项目中遇到的一些bug

在ssds检测项目中,其中求损失的multibox_loss.py中遇到一个bug,错误为:IndexError: The shape of the mask [32, 2990] at index 0 does not match the shape of the indexed tensor [95680, 1] at index 0报错代码如下:loss_c[pos] = 0其中...

2019-08-29 15:22:34 5215 8

原创 带有dilation的conv卷积输出尺寸的计算公式

对于conv卷积输出尺寸的计算公式:

2019-08-22 17:36:47 8977 2

原创 使用openCV 的cv2.imread函数读取图片找不到路径

使用openCV 的cv2.imread函数读取图片时出现,找不到图像的问题:错误如下:尝试把 \ 换为 /,或者把 \ 换为 \ 都不可以。后来发现,是中文路径的问题,将中文路径换为英文路径即可。...

2019-08-13 18:14:10 6532

原创 matlab对文件夹内图片重命名

pt = 'F:\MATLAB\source\test_image1\';ext = '*.jpg';dis = dir([pt ext]);nms = {dis.name};for i = 1:1:length(nms) old_name = [pt nms{i}]; %获取每张图片的名字 new_name = strcat('000',num2str(i),...

2019-07-25 00:02:27 2511

原创 matlab实现随机生成车牌字符

chinese_char = ['云','京','冀','吉','宁','川','新','晋','桂','沪','津','浙','渝','湘',... '琼','甘','皖','粤','苏','蒙','藏','豫','贵','赣','辽','鄂','闽','陕','青',... '鲁','黑']; eng_char = ['A','B','C','D','E','...

2019-07-24 23:45:16 1327

原创 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 2280

原创 基于深度学习的目标检测算法3----Faster RCNN && MaskRCNNN

什么是end to end ?端到端指的是输入是原始数据,输出是最后的结果,只关心输入和输出,中间的步骤全部都不管。原来输入端不是直接的原始数据,而是在原始数据中提取的特征....

2019-07-16 17:06:02 409

原创 基于深度学习的目标检测算法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 370

原创 基于深度学习的目标检测算法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 460

转载 win10下面搜索框无法搜索应用的解决方案

1.首先,打开管理员命令窗口,win+x,可以看到弹出一个窗口,打开windows Powershell(管理员);2.输入指令,回车运行start powershell3.输入下面指令,回车运行:Get-AppXPackage -Name Microsoft.Windows.Cortana | Foreach {Add-AppxPackage -DisableDevelopmentMo...

2019-07-06 10:52:18 8138

原创 3.2 迁移学习(transfer learning)

%matplotlib inline3.2 迁移学习(transfer learning)关于迁移学习的一些基础知识可以参考王晋东的迁移学习手册:https://max.book118.com/html/2018/0902/5144341211001312.shtm迁移学习的意义何在?在实践中,很少有人从头开始训练整个卷积网络(随机初始化),因为拥有足够大小的数据集是相对罕见的。相反,通常...

2019-07-05 17:28:58 670

原创 铰链损失函数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 8190

原创 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 245

原创 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 343

原创 关于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 2715 1

原创 关于反向传播

神经网络的代价函数: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)=&amp;-\frac{1}{m}\left[\sum_{i=1}^{m} \sum_{k=1}^{K} y_...

2019-06-25 14:43:03 182

原创 1.4 使用torch包训练一个分类集

1.4 使用torch包训练一个分类集其中包含torchvision包,它包含了处理一些基本图像数据集的方法。这些数据集包括 Imagenet, CIFAR10, MNIST 等。除了数据加载以外,torchvision 还包含了图像转换器, torchvision.datasets 和 torch.utils.data.DataLoader。torchvision包不仅提供了巨大的便利,也避...

2019-06-24 17:39:00 398

原创 深度学习--关于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 563

原创 1.2 Autograd: 自动求导机制

Autograd: 自动求导机制PyTorch 中所有神经网络的核心是 autograd 包。 我们先简单介绍一下这个包,然后训练第一个简单的神经网络。autograd包为张量上的所有操作提供了自动求导。 它是一个在运行时定义的框架,这意味着反向传播是根据你的代码来确定如何运行,并且每次迭代可以是不同的。示例张量(Tensor)torch.Tensor是这个包的核心类。如果设置 .req...

2019-06-20 16:55:27 646

统计学习方法(李航)

统计学习是计算机及其应用领域的一门重要的学科。本书全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、em算法、隐马尔可夫模型和条件随机场等。除第1章概论和最后一章总结外,每章介绍一种方法。叙述从具体问题或实例入手,由浅入深,阐明思路,给出必要的数学推导,便于读者掌握统计学习方法的实质,学会运用。为满足读者进一步学习的需要,书中还介绍了一些相关研究,给出了少量习题,列出了主要参考文献。

2019-04-28

统计学习方法(李航)

统计学习是计算机及其应用领域的一门重要的学科。本书全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、em算法、隐马尔可夫模型和条件随机场等。除第1章概论和最后一章总结外,每章介绍一种方法。叙述从具体问题或实例入手,由浅入深,阐明思路,给出必要的数学推导,便于读者掌握统计学习方法的实质,学会运用。为满足读者进一步学习的需要,书中还介绍了一些相关研究,给出了少量习题,列出了主要参考文献。

2019-04-28

现代集成电路版图设计

集成电路的版图设计,一本比较不错的入门书籍,首先介绍了集成电路各基本单元的版图,器件的模型,基于Lamda的版图设计规则,版图的寄生参数,数字电路,模拟电路,存储器等的版图设计。

2018-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除