深度学习
文章平均质量分 98
kendyChina
这个作者很懒,什么都没留下…
展开
-
并不详细的计算机视觉算法汇总(持续更新)
目标跟踪常见比赛VOTVOT: Visual Object Tracking官网: https://www.votchallenge.net/评价指标(2020):Accuracy准确率Robustness鲁棒性,也是错误率EAO(Expected Average Overlap)综合了Accuracy和Robustness的评价指标评价指标每年都不太一样,可参考官方对当年Challenge的公告。GOTURN 2016GOTURN:Generic Object Tra原创 2021-01-24 17:53:29 · 1525 阅读 · 0 评论 -
【论文翻译】SORT:SIMPLE ONLINE AND REALTIME TRACKING
SIMPLE ONLINE AND REALTIME TRACKINGAlex Bewley†, Zongyuan Ge†, Lionel Ott⋄, Fabio Ramos⋄, Ben Upcroft†Queensland University of Technology†, University of Sydney⋄论文: https://arxiv.org/abs/1602.00763代码: https://github.com/abewley/sortABSTRACT本文探讨了一种实用翻译 2020-11-25 14:14:06 · 2295 阅读 · 0 评论 -
【论文翻译】ROLO:Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking
Spatially Supervised Recurrent Convolutional NeuralNetworks for Visual Object TrackingGuanghan Ning∗, Zhi Zhang, Chen Huang, Zhihai HeDepartment of Electrical and Computer EngineeringUniversity of MissouriColumbia, MO 65201{gnxr9, zzbhf, chenhuang,翻译 2020-11-24 16:41:14 · 1240 阅读 · 1 评论 -
batch size浅谈
Batch Size的概念:每个Batch(批次)的大小。例如所有训练集有1000个样本,每把1000个Sample跑完就是一个epoch。那么在一个epoch中,同时取多少个sample进行训练,就是batch size。当今神经网络的训练中,所需要的训练集是非常庞大的,因此我们没办法一次性把所有训练集放进内存或显存中,统一训练。在同时训练的数量差别上,分三种类型:batch size=1;batch size=n (dataset > n > 1);batch size=siz原创 2020-09-25 10:43:31 · 1614 阅读 · 0 评论 -
Numpy判断某维度是否相同
在 语义分割(Semantic segmentation) 领域深度学习的label预处理工作中,要把3通道的label数据转为单通道的mask作为训练样本。例如把一堆黑色和红色的像素,转为全是0和1的单通道 mask。最Normal的处理流程为:判断像素的颜色;根据颜色赋值对应的label。那么在步骤一中,就要判断 label 的 channel 维度(例如shape为(480, 1280, 3),则channel维度为最后的3)和 color是否相同。假设 label 大小为 4 x原创 2020-09-18 18:25:30 · 1482 阅读 · 0 评论 -
解决方案:AttributeError: module ‘labelme.utils‘ has no attribute ‘label_colormap‘
使用labelme的GitHub中提供的json批量转voc格式的脚本,报错如下:后发现是因为copy脚本时选择的版本不对:只要选回master或者自己安装的对应版本再copy就好了:原创 2020-09-18 09:46:59 · 1016 阅读 · 3 评论 -
非极大抑制nms(non-maximum suppression)的pytorch实现
nms作用于目标检测模型中,从众多感兴趣的区域中筛选出最优的结果。如R-CNN系列的目标检测,数千个ROI(region of interes感兴趣区域)经过模型的计算后,仍输出了不少的bounding box(后简称bbox)。实际上,图像中的目标寥寥无几,nms就是从bbox中提取每个目标最可信的结果。非极大值抑制,顾名思义,就是对置信度并非最大的bbox进行抑制(或进行排除),只留...原创 2020-04-04 12:05:13 · 1797 阅读 · 0 评论 -
pytorch的cross_entropy实现
据pytorch的官方文档,torch.nn.functional里的cross_entropy是基于log_softmax和nll_loss实现的。没关系,通过最简单的torch原函数复现,可以较深理解当中的原理。import torchdef my_cross_entropy(input, target, reduction="mean"): # input.shape: torch...原创 2020-04-03 21:39:23 · 4730 阅读 · 0 评论 -
Pytorch损失函数之BCELoss与BCEWithLogitsLoss
1.先说结论nn.BCEWithLogitsLoss等于nn.BCELoss+nn.Sigmoid。主要用于二分类问题,多标签分类问题。图为Pytorch Document对于BCEWithLogitsLoss的描述,这个损失函数结合了Sigmoid和BCELoss。2.公式分解BCEWithLogitsLoss假设有N个batch,每个batch预测n个标签,则Loss为:Loss={l1,...,lN}, ln=−[yn⋅log(σ(xn))+(1−yn)⋅log(1−原创 2020-05-24 10:05:37 · 7976 阅读 · 1 评论 -
Pytorch损失函数之nn.NLLLoss与nn.CrossEntropyLoss
1. 先说结论nn.CrossEntropyLoss(简称CEL)等于nn.NLLLoss(简称NLL)+torch.log+F.softmax主要用于多分类问题的损失计算。图为Pytorch对于CEL的描述,这个criterion(指标)结合了nn.LogSoftmax()和nn.NLLLoss()nn.LogSoftmax()其实也就是torch.log+F.softmax2.CrossEntropyLoss(CEL)公式分解CEL(x,class)=−log(exp(x[class])原创 2020-05-23 21:26:25 · 1944 阅读 · 0 评论 -
Evaluation中Percision和Recall的理解
1.评价指标在机器学习、深度学习快速发展的时代,模型和技巧层出不穷,那么就需要有一定的指标去量化地评价这些新的idea,是否work,优化的幅度有多大。2.混淆矩阵在分类任务中,通常可以用混淆矩阵比较直观地分析,各类别的预测准确度,模型在哪个类别的性能较低,以确定后续优化的方向。预测 \ 标签猫狗总计猫16117狗41923总计202040据混淆矩阵所示,共40张图待预测,其中20张猫、20张狗。可直观得知,模型对于狗的预测效果更好。此原创 2020-05-25 21:40:42 · 630 阅读 · 0 评论 -
目标检测的AP(Average Precision)代码解析与深入思考
1. 引言Average Precision的原理可见 多标签图像分类任务的评价方法-mAP ,个人感觉文章对计算流程、PR曲线(Precision-Recall)、图例都展示得比较好。另外,忘记从哪篇文章中提到的一句讲得特别精髓,大致意思如下:对confidence socre降序排列后,再把第k行作为top-k的分界线,进行Precision和Recall的计算。所以我们计算AP是对conf排序后,从上往下的计算,一直从top-1到top-N。通常情况下,从top-1到top-N伴随的是召原创 2020-05-26 23:13:51 · 1814 阅读 · 0 评论 -
softmax+cross-entropy的前向计算、反向传播的公式推导
本文偏公式推导。1. Softmax前向计算把Softmax把Softmax把Softmax输出的概率定义为 pip_ipiSoftmax(ai)=pi=eai∑jNeajSoftmax(a_i) = p_i = \frac {e^{a_i}} {\sum_j^N e^{a_j}}Softmax(ai)=pi=∑jNeajeai模型输出[a1,a2,...,aN][a_1, a_2, ..., a_N][a1,a2,...,aN],共N个值。其中aia_iai代表第iii原创 2020-05-29 08:36:42 · 2111 阅读 · 1 评论 -
Batch Normalization的理解体会
网络上对于Batch Normalization的讲解也非常多了,本文主要想记录下对此的心得体会,并总结下我所理解的BN的优势。在此先mark一下我认为写得比较全面的资料:BN的原理(文章1):【深度学习】深入理解Batch Normalization批标准化BN的论文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate ShiftBN work的原因(文章2):为什么B原创 2020-06-06 20:23:37 · 265 阅读 · 0 评论 -
二维卷积神经网络的初始化为0及其他初始化方式对比
今天想结合实验及公式讨论下,二维卷积神经网络下,初始化为0初始化为常数kaiming初始化3种初始化方式的结果。并分析复杂模型不能初始化为0的根本原因。1. 实验背景先介绍下实验模型,用的是Pytorch下两层卷积网络,各接BN层和ReLU层:class Model(nn.Module): def __init__(self): super(Model, self).__init__() self.conv1 = nn.Conv2d(3, 3, 3, padding=1, bi原创 2020-06-07 20:54:39 · 2031 阅读 · 0 评论 -
基于Pytorch源码对Adagrad、Adadelta、RMSProp、Adam等自适应学习率进行学习
公式是实现的原理,而源码才是让想法落地的媒介。希望能透过源代码,对原理有更具体的理解,回顾公式,也会有更深入的感受。前期基于Pytorch的源码,对SGD进行了学习:基于torch.optim.sgd.py源码对SGD、momentum、Nesterov学习本文会基于Pytorch源码,对Adagrad进行学习。Adagrad在SGD的年代,我们只能通过学习率(learning rate)来宏观控制网络的参数的学习速度,这从直观上是不太细致的。随着人脑突触的实验进展,发现人脑神经元是有一定稀疏性的原创 2020-06-16 22:03:34 · 990 阅读 · 0 评论 -
基于Pytorch源码对SGD、momentum、Nesterov学习
目前神经网络的监督学习过程通常为:数据加载(load)进神经网络经过网络参数对数据的计算,得出预测值(predict)根据预测值与标注值(label)之间的差距,产生损失(loss)通过反向传播(BP:Back Propagation)对神经网络的各个参数产生梯度(gradient)依据特定的梯度下降算法(如SGD:Stochastic Gradient Descent随机梯度下降),基于梯度对参数进行更新前五步重复,直到网络参数收敛(convergence)本文主要想基于Pytorch的原创 2020-06-14 22:34:48 · 4967 阅读 · 1 评论 -
focal loss学习笔记
背景目标检测中,one-stage相比two-stage,要在更稠密的样本中进行筛选和学习(即Dense Predict),而且后者基于proposal的思想,已经初筛掉大部分easy background。因此前景背景(foreground-background)的不平衡(imbalance)是one-stage训练时的主要问题。one-stage在训练时都会面临class-imbalance的问题,会导致两个弊端:训练不高效,大多数位置都是easy negtive,贡献很少的有用学习信号(use原创 2020-06-20 17:30:14 · 428 阅读 · 0 评论