
深度学习基础
Good@dz
烟火向星辰,所愿皆成真
展开
-
Tensor的广播操作
Tensor 的广播操作原创 2023-09-06 11:02:27 · 302 阅读 · 0 评论 -
深度学习过程反向传播有关sigmoid的求导
如果在输出层得不到期望的输出值,则取输出与期望的误差的平方和作为目标函数,转入反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯量,作为修改权值的依据,网络的学习在权值修改过程中完成。BP网络的输入输出关系实质上是一种映射关系:一个n输入m输出的BP神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。在深度学习的反向传播过程中,我们需要对激活函数进行求偏导,这里写一点如果激活函数是sigmoid函数的时候,其求导过程。转载 2022-11-14 09:17:39 · 438 阅读 · 1 评论 -
重新学习梯度下降法
梯度下降法是通过观察局部决定如何调整的算法。如果函数具有多个极值,则可能陷入局部极值,此时初始点的选择直接影响收敛结果转载 2022-11-08 16:54:43 · 296 阅读 · 0 评论 -
常见box loss汇总
传统回归loss都是回归表征一个矩形框的四个变量,但。实际上,,简单的分开计算每个变量的回归loss无法反映这种相关性,而将预测框与GT框之间的iou引入回归loss则很好的解决了这一问题。转载 2022-11-07 20:20:57 · 2769 阅读 · 1 评论 -
图像处理-形态学处理
形态学处理原创 2022-10-21 19:58:37 · 3212 阅读 · 0 评论 -
python open读写文件
python open读写文件转载 2022-08-08 16:04:37 · 3279 阅读 · 0 评论 -
R-CNN的流程步骤
步骤:找到可能存在的获选区域,例如得到2000个获选获选区域将获选区域的尺寸进行同一处理,通过CNN特征提取,得到2000个feature map使用20个SVM进行分类,得到2000*20的得分矩阵同一类的候选区域进行NMS,得到表现较好的候选框修正候选框的长宽,进行微调......原创 2021-09-10 11:06:47 · 736 阅读 · 0 评论 -
Depthwise卷积与Pointwise卷积
Depthwise(DW)卷积与Pointwise(PW)卷积,合起来被称作Depthwise Separable Convolution(参见Google的Xception),该结构和常规卷积操作类似,可用来提取特征,但相比于常规卷积操作,其参数量和运算成本较低。所以在一些轻量级网络中会碰到这种结构如MobileNet。常规卷积操作对于一张55像素的三通道彩色图片,经过33卷积核(假设输出通道为4,卷积核为4个333的卷积核),最终输出4个特征图.如果有same padding则尺寸与输入层相同(5*转载 2021-12-02 20:21:59 · 704 阅读 · 0 评论 -
真实标签为one-hot编码,使用pytorch nn.CrossEntropyLoss()的注意事项
nn.CrossEntropyLoss()的label给的不是one-hot编码原创 2022-03-09 15:37:29 · 2768 阅读 · 0 评论 -
NMS非极大值抑制与单分类与多分类的代码实战
NMS的理论待更新原创 2022-03-03 16:51:15 · 1551 阅读 · 0 评论 -
在制作CityScapes时,对标签图进行resize需要注意的事项
在对标签图进行resize时,需要使用的时最近邻插值法,否则这会导致resize后的标签图会增加其标签数据的像素类型(即例如原本标签图中只有像素值为0和4,使用bilinear插值后,resize后的像素值可能有0、1、2、3和4)。img = cv2.resize(img,(2048, 1024),interpolation=cv2.INTER_NEAREST)...原创 2022-01-29 15:57:25 · 3221 阅读 · 0 评论 -
神经网络多分类的实现总结
首先要了解二分类、多分类和多标签分类原创 2021-11-21 20:42:48 · 5288 阅读 · 0 评论 -
pytorch合并与拆分
第一:broading casta = torch.randn(4,3)b = torch.rand(4,3)c = a + bc = torch.randn(1,3)d = a+ c结果:a: tensor([[-0.9123, -0.3065, -0.5646], [ 1.4327, 2.1845, -1.6093], [ 0.9051, -1.2144, -1.6093], [-0.6509, 0.7420, 1.0669转载 2021-08-09 09:30:34 · 224 阅读 · 0 评论 -
python 读写操作
读写模式要了解文件读写模式,需要了解几种模式的区别,以及对应指针r : 读取文件,若文件不存在则会报错w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾rb,wb: 分别于r,w类似,但是用于读写二进制文件r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖w+ : 可读,可写,文件不存在先创建,会覆盖a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾...原创 2021-08-04 15:37:07 · 149 阅读 · 0 评论 -
python中的json介绍与读写操作
1.json文件的介绍JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。JSON在python中分别由list和dict组成。这是用于序列化的两个模块:j转载 2021-08-04 14:19:39 · 244 阅读 · 0 评论 -
apt-get和yum的介绍
linux系统分类一般来说linux系统基本上分两大类:RedHat系列:Redhat、Centos、Fedora等Debian系列:Debian、Ubuntu等RedHat 系列常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”包管理工具 yum支持tar包Debian系列常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”包管理工具 apt-get支持tar包注释:(1)tar 只是一种压缩文件格式,它只是把文件压缩打包而已。(2)转载 2021-08-03 09:46:48 · 689 阅读 · 0 评论 -
F1与Acc
Acc为准确率, F1为精确率. 两者很像,但是并不同,简单来说两者的目的对象并不相同。1.精确度2.准确率accuracy =(TP+TN)/(TP+FN+FP+TN)参考链接:http://www.bubuko.com/infodetail-2343224.html原创 2021-07-30 16:10:49 · 2684 阅读 · 1 评论 -
python setup.py install 和python setup.py develop的区别
1.在安装某个库或包时,发现可以python setup.py install 和python setup.py develop两种方式来安装,这两种方法有什么不同?一直困扰着我,下面我们就来讨论下这个简单的问题2.python setup.py install:主要是安装典型第三方包,这种包比较稳定,不再需要你去编辑、修改或是调试。3.python setup.py develop:当你安装一个包后,这个包需要你不断修改,这样你就不得不重新安装,这时就采用这种安装方法。转载:https://blog转载 2021-07-28 22:09:31 · 439 阅读 · 0 评论 -
简述python setup.py install
转载:https://www.jianshu.com/p/f8ffbf18c312python setup.py install 是我们用来安装下载的python包或者自己按照python官方规范开发的扩展包的常用指令。python setup.py install包括两步:python setup.py build, python setup.py install,这两步,可分开执行, 也可只执行python setup.py install, 因为python setup.py install总是会转载 2021-07-28 22:05:50 · 5501 阅读 · 0 评论 -
深度学习---SOTA
SOTA也就是state-of-the-art,翻译为体现最高水平的。若某篇论文能够称为SOTA,就表明其提出的算法(模型)的性能在当前是第一名。参考链接:https://blog.youkuaiyun.com/haha0825/article/details/103349130/原创 2021-07-08 09:33:42 · 2061 阅读 · 1 评论 -
多尺度(multi-scale)目标检测方法
多尺度图像预测将图片进行不同尺度的缩放,得到图像金字塔,如果对每层图片提取不同尺度的特征,得到特征图。最后对每个尺度的特征都进行单独的预测。特点:不同的尺度的特征都可以包含很丰富的语义信息,精度高,但是速度慢。2.金字塔特征预测将输入的图片转变成feature map,在feature map层面上来进行尺度变换,采用不同的方法进行不同尺度特征的融合,以实现多尺度检测。2.1 FPN特征金字塔网络:将低层的特征和高层的特征融合起来,在不同的特征层进行预测。2.2 SSD从网络不同层抽取不.转载 2021-07-07 20:53:44 · 2701 阅读 · 0 评论 -
目标检测之金字塔
图像金字塔图像金字塔结构,即对图像进行一定比例的缩放,从而得到一系列不同尺寸的样本图像序列,在缩放过程中一般采用线性差值等方法,在缩放的同时可以加入滤波、模糊等处理,常见的形式有:高斯金字塔(Gaussianpyramid): 用来向下采样,主要的图像金字塔。拉普拉斯金字塔(Laplacianpyramid): 用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行较大程度的还原,配合高斯金字塔一起使用。图像金字塔的作用在于解决目标检测中的多尺度问题,在比较早的.转载 2021-07-05 11:25:39 · 1398 阅读 · 0 评论 -
目标检测之anchor
anchor字面意思是锚,指固定船的东东,anchor在计算机视觉中有锚点或锚框,目标检测中常出现的anchor box是锚框,表示固定的参考框。早期深度学习方法都要金字塔多尺度+遍历滑窗的方式,逐尺度逐位置判断"这个尺度的这个位置处有没有认识的目标",非常笨重耗时。近期顶尖(SOTA)的目标检测方法几乎都用了anchor技术。首先预设一组不同尺度不同位置的固定参考框,覆盖几乎所有位置和尺度,每个参考框负责检测与其交并比大于阈值 (训练预设值,常用0.5或0.7) 的目标,anchor技术将问题转换为"原创 2021-07-05 11:01:31 · 693 阅读 · 0 评论 -
神经网络---预训练
简单来说,预训练模型(pre-trained model)是前人为了解决类似问题所创造出来的模型。你在解决问题的时候,不用从零开始训练一个新模型,可以从在类似问题中训练过的模型入手。比如说,如果你想做一辆自动驾驶汽车,可以花数年时间从零开始构建一个性能优良的图像识别算法,也可以从Google在ImageNet数据集上训练得到的inception model(一个预训练模型)起步,来识别图像。一个预训练模型可能对于你的应用中并不是100%的准确对口,但是它可以为你节省大量功夫。通过使用之前在大数据集上经过训转载 2021-07-04 21:53:15 · 3268 阅读 · 0 评论 -
x.view(x.size(0), -1)的解释
x.size(0)是batch size,-1是自适应的意思,比如原来的数据为[2,3,4,5],batch size为2,channel为3,高宽为4和5经过x.view(x.size(0), -1),就会变为[2,345]=[2,60]原创 2021-06-25 10:25:27 · 1644 阅读 · 0 评论 -
super().__init__()与super().forward()
例如super(MixSoftmaxCrossEntropyLoss, self).init(ignore_index=ignore_label),它是引用MixSoftmaxCrossEntropyLoss的父类的__init__()而对于super(MixSoftmaxCrossEntropyLoss,self).forward(*inputs),则是引用MixSoftmaxCrossEntropyLoss父类中的forward()...原创 2021-06-23 14:35:59 · 878 阅读 · 0 评论 -
Python中*args、**kwargs是什么
*args的用法:当传入的参数个数未知,且不需要知道参数名称时。def func_arg(farg, *args): print("formal arg:", farg) for arg in args: print("another arg:", arg)func_arg(1,"youzan",'dba','四块五的妞')print("-----------------------")# 输出结果如下:# formal arg: 1# another arg:转载 2021-06-21 19:34:48 · 118 阅读 · 0 评论 -
python 在列表,元组,字典变量前加*号。
在一个列表、元组或字典变量前加*,结果如下可以发现,在列表前加*号,会将列表拆分成一个一个的独立元素,不光是列表、元组、字典,由numpy生成的向量也可以拆分;转载 2021-06-21 14:04:05 · 282 阅读 · 0 评论 -
Bottleneck瓶颈型结构
瓶颈结构指的是通道数的变化,即原通道数减少再增大,用瓶颈来形容这一句结构较为抽象。在resnet中的应用,从下面的右图可知道输入的维度是256,输出的维度也是256,中间维度是64,即数据的通道数先经过减少,后再增加到原来的大小,这就是Bottleneck瓶颈型结构。参考链接:https://blog.youkuaiyun.com/DanTaWu/article/details/111468257?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_原创 2021-06-12 20:14:30 · 4267 阅读 · 0 评论 -
二分类、多分类和多标签分类
1转载 2021-06-07 22:26:06 · 9097 阅读 · 1 评论 -
pytorch nn.AdaptiveAvgPool2d()
torch.nn.AdaptiveAvgPool2d() 自适应平均池化函数,该函数只需要给定输出特征图的大小,其中通道数前后不变。例子m = nn.AdaptiveAvgPool2d((3,7))input = torch.randn(1, 64, 8, 9)#input:torch.Size([1, 64, 3, 7])m = nn.AdaptiveAvgPool2d(7)input = torch.randn(1, 64, 10, 9)#input:torch.Size([1, 64,原创 2021-06-04 11:09:25 · 576 阅读 · 0 评论 -
torch之torch.flatten()
"推平"tensortorch.flatten(input, start_dim=0, end_dim=-1)input:一个tensor,即要被"推平"的tensor。start_dim:"推平"的起始维度。end_dim: “推平”的结束维度。1)flatten(x,1)是按照x的第1个维度拼接(按照列来拼接,横向拼接);2)flatten(x,0)是按照x的第0个维度拼接(按照行来拼接,纵向拼接);3)有时候会遇到flatten里面有两个维度参数,flatten(x, start_d原创 2021-06-04 09:52:38 · 2323 阅读 · 0 评论 -
Python __all__变量用法
事实上,当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。因此,如果我们不想模块文件中的某个成员被引入到其它文件中使用,可以在其名称前添加下划线。例子1:def say(): print("人生苦短,我学Python!")def CLanguage(): print("C语言中文网:http://c.biancheng.net")def disPython(): print("Python教程:http:转载 2021-06-01 15:13:05 · 231 阅读 · 0 评论 -
windows和linux下的斜杠号与反斜杠号
Windows:“/”是表示参数,“\”是表示本地路径。Linux:“/”表示路径,“\”表示转义,“-”和“–”表示参数。在Unix/Linux中,路径的分隔采用正斜杠"/",比如"/home/hutaow";而在Windows中,路径分隔采用反斜杠"",比如"C:\Windows\System"Windows绝对路径: 以盘符开始 如C:/a.txtWindows相对路径:. 指的是当前目录… 指的是当前目录的上一级目录./test 表示当前目录下的test原创 2021-06-01 14:27:14 · 2056 阅读 · 0 评论 -
logging.basicConfig函数
logging模块的介绍logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;在python中,logging由logger,handler,filter,fo原创 2021-05-31 16:04:36 · 933 阅读 · 0 评论 -
BatchNorm和LayerNorm的比较
BatchNorm:batch方向做归一化,算NHW的均值,对小batchsize效果不好;BN主要缺点是对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布LayerNorm:channel方向做归一化,算CHW的均值,主要对RNN作用明显;batch normalization对一个神经元的batch所有样本进行标准化,layer normalization对一个样本同一层所有神经元进行标准化,前者原创 2021-05-26 11:17:13 · 6555 阅读 · 0 评论 -
python读取pkl文件(亲测有效)
import _pickle as pickleif __name__ == '__main__': fr = open("***.pkl",'rb') # open的参数是pkl文件的路径 inf = pickle.load(fr) # 读取pkl文件的内容 print(inf) fr.close()参考链接:https://blog.youkuaiyun.com/u013093426/article/details/87867000...原创 2021-05-19 16:31:52 · 3330 阅读 · 0 评论 -
python--[:]、[::]...
字符串line = "abcde"line[:-1]结果为:‘abcd’line = "abcde"line[::-1]结果为:‘edcba’一维或二维数组import numpy as npa = [[1.0,2.0,3.0,4.0], [5.0,6.0,7.0,8.0]]a = np.array(a)参考链接:https://blog.youkuaiyun.com/u014159143/article/details/80319587...原创 2021-05-17 18:53:46 · 203 阅读 · 0 评论 -
图片尺寸实时转换python
image = cv2.resize(image, (640, 480))原创 2021-05-17 14:19:19 · 211 阅读 · 0 评论 -
python中的Queue
queue简介Python的Queue模块提供一种适用于多线程编程的FIFO实现。它可用于在生产者(producer)和消费者(consumer)之间线程安全(thread-safe)地传递消息或其它数据,因此多个线程可以共用同一个Queue实例。Queue的大小(元素的个数)可用来限制内存的使用。在python中,多个线程之间的数据是共享的,多个线程进行数据交换的时候,不能够保证数据的安全性和一致性,所以当多个线程需要进行数据交换的时候,队列就出现了,队列可以完美解决线程间的数据交换,保证线程间数据的原创 2021-05-14 16:48:56 · 1347 阅读 · 0 评论