- 博客(43)
- 收藏
- 关注
原创 关于模型分成多部分时的torch.optim优化设置
上次写代码时,backbone encoder是用了别人代码,另外又添加了多分支多layer作为task decoder。但是开始犯了个很致命的错误,在pytorch设置优化器时,仅使用了:optimizer = torch.optim.Adam(model.parameters(), lr=args.lr, weight_decay=args.weight_decay)这样实际上只优化了部分模型,应该这样设置:optimizer = torch.optim.Adam([{'params': mo
2020-09-14 17:18:46
826
原创 pytorch tensor int型除法
昨天晚上跑起来一个classification实验,今天发现训练loss在降,然而accuracy永远是0 。。。直觉告诉我evaluation有问题然后发现自己写了个很愚蠢的bugaccuracy对应的tensor出来是int型的,我用到了一个除法取平均。而pytorch里无论用 / or // 结果都是取整,,accuracy一直就没有。。所以转换成float就没问题了,,低级bug,下不为例...
2020-08-05 16:47:00
2032
原创 Visual Reasoning | GQA Dataset
参考博客:https://blog.csdn.net/hester_hester/article/details/103238649https://zhuanlan.zhihu.com/p/64183181CLEVR虽然消除了dataset bias,但是人工合成的图像和问题组成,多样性较低,类和属性较少,容易使模型记住所有组合。因此提出GQA,由真实图像组成,并在一个大的语义空间中运行,更具挑战性。GQA数据集围绕真实图像推理、场景理解和合成问题回答等一系列任务,由113K张图像和22M个不同的
2020-06-21 16:51:30
796
1
原创 Visual Reasoning(3): A simple neural network module for relational reasoning
A simple neural network module for relational reasoningIntroductionMethodsExperiments & ConclusionDeepMind的一项工作https://www.zhihu.com/question/60784169/answer/180518895https://zhuanlan.zhihu.com/p/28654835Introduction前面编的故事都没什么,分析了下symbolic&neu
2020-06-15 00:18:44
267
原创 Visual Reasoning(1): CLEVR Dataset
CLEVR: A Diagnostic Dataset for Compositional Language and Elementary Visual Reasoning这项工作是Visual Reasoning领域的开山之作了~李飞飞&FAIR构建了一个新的Reasoning dataset, CLEVR:https://cs.stanford.edu/people/jcjohns/clevr/现在的模型很多是直接给出一个答案,而没有中间的推理过程,这使得人们很难分析模型的缺陷,究竟是哪
2020-06-14 23:25:20
3278
原创 Visual Reasoning(2): Inferring and Executing Programs for Visual Reasoning
Inferring and Executing Programs for Visual ReasoningIntroductionMethodsTrainingExperimentsConclusion这里有一些介绍:https://zhuanlan.zhihu.com/p/28654835IntroductionMotivation原先的VQA model都是input-output mappings,不具备推理能力所以提出a new model for visual question an
2020-06-14 23:24:45
528
原创 NLP入门
之前考虑要不要往NLP靠,浏览了些这方面的博客,也算是入门吧首先是整个NLP的发展历程,参考:https://blog.csdn.net/Zhangbei_/article/details/85036948关于seq2seq:https://blog.csdn.net/Jerr__y/article/details/53749693关于transformer:https://www.jianshu.com/p/bb7935f5c717https://zhuanlan.zhihu.com/p/3
2020-06-12 00:24:50
184
原创 pytorch点乘&高维矩阵乘法
torch.mul和直接用运算符 * 都是点乘(可广播)torch.mm只能二维矩阵相乘,而torch.matmul可以广播到多维参见:https://blog.csdn.net/weixin_42105432/article/details/100691592
2020-06-11 23:12:29
5665
原创 Python val() 通过字符串对应至同名变量
eval()函数可以方便的在python中,通过字符串访问变量名。方便代码中提取特定的一系列变量名相近的变量。在写Pytorch的一套代码(GPS DlinkNet_fusion),想要提取ResNet中的layer1、layer2、layer3、layer4. 一句一句的写代码太多,又不太雅观。这时候可以用val() 通过字符串对应至同名变量。简单例子,提取resnet.layer1,resnet.layer2,…resnet = models.resnet34(pretrained=True)b
2020-05-21 18:16:44
4307
原创 with torch.no_grad(): 可显著减少显存占用
模型训练的时候,爆显存了,可以调整batch,对数据进行crop等等操作今天发现一个模型,每次测试的时候爆显存,开始以为原因是用了全图(1920x1080略大)进行inference。这是一方面,但后来发现忘了用with torch.no_grad():这导致模型运算的时候不能释放显存(记录了梯度信息),所以显存巨大。加了之后,不过3G显存就够了。。确实inference不需要那么多显存的,以后记着这种不正常现象如何处理。...
2020-05-21 00:49:02
5175
6
原创 Non-local总结
Non-local能够引入全局的信息,就能很好地解决local操作无法看清全局的情况,为后面的层带去更丰富的信息。(可以和FC以及普通local conv对比下,FC也是non-local连接,而且是global的)这两篇blog感觉写的很好:https://zhuanlan.zhihu.com/p/33345791https://blog.csdn.net/u014380165/article/details/80012001自己总结下,Non-local module的核心就是如下两个公式:
2020-05-10 23:47:32
1028
1
原创 Pytorch tensor特定条件判断索引
torch.where() 用于将两个broadcastable的tensor组合成新的tensor,类似于c++中的三元操作符“?:”区别于python numpy中的where()直接可以找到特定条件元素的index想要实现numpy中where()的功能,可以借助nonzero()对应numpy中的where()操作效果:...
2020-04-28 18:31:07
14793
原创 Explaining Knowledge Distillation by Quantifying the Knowledge
Explaining Knowledge Distillation by Quantifying the Knowledge本文核心idea是利用熵衡量feature中蕴含的knowledge,并将其量化。首先有个概念叫 visual concept, which is defined as an image region, whose information is significantly...
2020-04-24 00:15:56
435
原创 Hybrid Graph Neural Networks for Crowd Counting
引入 auxiliary task (localization)两个domain(localization&counting)的features作为nodes, relations between them作为edge,构建graph
2020-03-22 20:09:24
713
原创 RGB-Infrared Cross-Modality Re-Identification
Methods of processing infrared image for Re-ID task《RGB-Infrared Cross-Modality Person Re-Identification》《RGB-Infrared Cross-Modality Person Re-Identification》2017-ICCV,这个task的挖坑论文:Motivation是显而易见...
2020-03-19 13:08:29
865
原创 RGB-infrared(RGBT)数据任务中infrared(thermal)信息的使用方式
@[TOC](Collating the processing methods of the infrared(temperature) information in RGBT data)DetectionLearning Cross-Modal Deep Representations for Robust Pedestrian Detection这篇文章的motivation和我之前想的...
2020-03-15 20:29:52
1704
原创 RGBD数据任务中depth信息的使用方式
Collating the processing methods of the depth information in RGBD dataSegmentaion《Learning Rich Features from RGB-D Images for Object Detection and Segmentation》Segmentaion《Learning Rich Features fr...
2020-03-14 17:43:13
1992
4
原创 RDNet
RDNet:Density Map Regression Guided Detection Network for RGB-D Crowd Counting and LocalizationIntroductionMethodExperimentsIntroductionMotivation:Regression-based方法有局限性,希望还是使用detection-based可以估计出每个...
2020-03-13 18:45:49
1158
1
原创 AlphaGo-Nature: Mastering the game of Go with deep neural networks and tree search
AlphaGo论文浅析Introduction大作业让分析一下这篇论文,正好整理到博客上。Introduction首先介绍了一下之前破解各种游戏所采用的搜索空间剪枝的原则。以及Monte Carlo tree search (MCTS),在围棋上达到了较强的业余选手水平,但是离人类顶尖职业选手还是有不少差距。本文将围棋19x19的棋盘位置作为一个19x19 image送入CNN。使用神经网...
2019-12-06 17:59:56
339
原创 pytorch求范数&归一化
除以L1 L2范数 max值 归一化a = torch.ones((2,3)) #建立tensora2 = torch.norm(a) #默认求2范数a1 = torch.norm(a,p=1) #指定求1范数instance normal大概是对每一个channel归一化到均值0,方差略大于1...
2019-10-17 11:02:04
6548
原创 安装pytorch
安装pytorch的命令是pip install torch==0.4.0 torchvision==0.2.0不要打成pytorch=0.4.0了
2019-10-10 18:52:19
197
原创 不改变model结构,利用hook仅拿出中间变量进行操作
当需要拿出model的一些中间输出并做bp等操作,可以利用hook机制对某个module调用register_forward_hook(get)时,会在forward时,自动调用定义的函数get(也可以是其他名字)但参数是model input output。使用input和model,在hook标注的这个module得到的结果会返回到output,然后可以对它进行一些操作我这里是把一些fea...
2019-10-09 22:30:43
328
原创 MobileNetV2
赶时间搭baseline搞CVPR,没有时间认真看论文,看了看博客大概知道MobileNetV2的结构了,以后要好好看看!这位老哥讲的不错:主要两个改进一是block里的第二个conv1×1后面并没有接relu,而是用的linear,作者称之为Line Bottlenecks因为第一个dw conv 已经用过一次ReLu了,这里1x1conv把通道映射提升又使用的话,会破坏feature...
2019-09-28 20:58:50
114
原创 MobileNet
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision ApplicationsDepthwise Conv大名鼎鼎的MobileNet,实习的时候发现工业界用的很多!今天要一探究竟了~Depthwise Conv这位老哥的图画的通俗易懂本文首先对传统的卷积进行了改进(我一开始学的时候也觉得conv f...
2019-09-27 16:51:55
99
原创 Knowledge Distillation(11)——teacher assistant
motivation: 希望a teacher can effectively transfer its knowl-edge to students up to a certain size,但有时gap太大,效果反而差,正如mutual learning发现跟teacher学还不如和一个与自己目前水平相当(虽然网络结构差很多)的student学所以助教的概念都出来了:teache...
2019-09-25 17:15:09
1145
原创 Knowledge Distillation(10)——Born Again Neural Networks
这篇论文不是用作模型压缩的,作者想的是让student超越teacher其训练方式如下:实验结果,student超越teacher了:
2019-09-23 22:43:53
1551
原创 Knowledge Distillation(9)——Fast Human Pose Estimation
如果这一系列博客之前的都有看了,且有了解过pose领域的hourglass,这篇文章的idea就很清晰了:对每个hourglass module的中继监督,同时加入hard label&teacher’s soft output关于文章的一些思考,一些别人的博客翻译总结的很好:...
2019-09-23 20:40:23
373
原创 Knowledge Distillation(8)——Learning Efficient Object Detection Models with Knowledge Distillation
Learning Efficient Object Detection Models with Knowledge Distillation概述之前博客整理的论文都是knowledge distillation及其变体,作为机器学习的一种方法的研究发展历程。从这篇博客开始,我将介绍其在CV领域的一些具体的用法。本文是knowledge distillation在detection上成功应用的一...
2019-09-23 12:51:20
3640
1
原创 Knowledge Distillation(7)——Deep Model Compression: Distilling Knowledge from Noisy Teachers
Deep Model Compression: Distilling Knowledge from Noisy Teachers概述概述给teacher的输出加入基于噪声的正则化,提高Student Robustness获得更好的performance很粗糙的一种模拟multi-teacher的方式:...
2019-09-22 21:30:07
608
原创 Knowledge Distillation(6)——Large scale distributed neural net training through online distillation
Large scale distributed neural network training through online distillationGoogle brain, Google DeepMind等团队合作的一篇论文,Hinton的名字赫然在列,发表在ICLR2018.
2019-09-22 20:57:51
898
原创 Knowledge Distillation(5)——Deep Mutual Learning
之前都是对knowledge重新定义,衍生出的knowledge distillation的变体模型。本篇博客开始,介绍知识蒸馏的第二类方法:提高student perfomance。Deep Mutual Learning概述MethodModelOptimisationExperiments概述本文核心idea是,没有teacher,一系列student之间相互学习:Method...
2019-09-22 15:53:43
613
原创 Knowledge Distillation(4)——Paying more attention to attention
PAYING MORE ATTENTION TO ATTENTION:IMPROVING THE PERFORMANCE OF CONVOLUTIONALNEURAL NETWORKS VIA ATTENTION TRANSFER概述IMPROVING THE PERFORMANCE OF CONVOLUTIONALNEURAL NETWORKS VIA ATTENTION TRANSFE...
2019-09-21 14:15:35
1396
2
原创 Knowledge Distillation(3)——A Gift from Knowledge Distillation
A Gift from Knowledge Distillation:Fast Optimization, Network Minimization and Transfer Learning 论文阅读MethodMethod作者打了个比方,对于人类,老师教学生做题时,一个中间的结果并不重要,我们更应该学习的是解题流程。这也是本文的核心idea,不拟合大模型的输出,而是去拟合大模型层与层之间...
2019-09-20 20:52:50
850
原创 Knowledge Distillation(2)——FitNets: Hints for Thin Deep Nets
概述在Hinton教主挖了Knowledge Distillation这个坑后,另一个大牛Bengio立马开始follow了,在ICLR发表了文章FitNets: Hints for Thin Deep Nets这篇文章的核心idea在于,不仅仅是将teacher的输出作为knowledge,在一些中间隐含层的表达上,student也要向teacher学习:由于teacher和studen...
2019-09-20 18:00:23
2605
原创 Knowledge Distillation(1)——入门&开山之作
Knowledge Distillation 概述研究背景定义(知识蒸馏是什么?)开山之作1. Introduction2. Distillation研究背景对于机器学习的模型,我们往往在训练和部署时使用着极其相似的模型,尽管这两个阶段明显有着不同的需求:训练时可以使用一个巨大的数据集去训练一个很深的模型,并占用大量的计算资源,以期达到最好的效果;然而在实际应用时,却又对计算时间和计算资源特...
2019-09-19 20:49:17
3281
原创 DenseNet论文浅析与代码实现
代码地址:Pytorch版本DenseNetDenseNet可以说是结合了ResNet和Inception结构的优点,建立了稠密的连接,最大化信息流动,进一步优化了梯度densenet论文中,认为resnet帮助解决了梯度消失问题,梯度消失有一部分原因确实是网络过深:传播经过的层数越多,梯度越容易消失,而shortcut的结构使得梯度传播跳过了一层。但是相加后,信息无法继续传递了dense...
2019-09-18 17:42:57
353
原创 BN浅析及用法
BN和conv pooling一样是一个含有参数的层,其解决的问题是样本间在隐含层的特征数据分布不均,提升训练效率。基本算法如下,首先对每一层的数据,都会计算其均值和方差,再将特征数据分布归一化到均值为1,标准差为0。仅仅是这样操作后会有一个硬伤:原本一些数据分布可能都是大于0的,现在你归一化到均值为1,一般情况下,神经元在ReLu都不会被激活!因而BN层又构造了一个yi=γxi+βy_i=\...
2019-09-17 20:48:33
1174
原创 BP、梯度消失/爆炸与ResNet
深度学习最底层的理论,竟有些生疏了,回顾一下梯度消失与爆炸的根本原因:https://www.jianshu.com/p/243ab5aff906主要是传统的一些激活函数很容易出现梯度消失/爆炸loss对参数的偏导,与sigmoid的导数以及参数w有关:sigmoid的导数是限制在[0, 1/4],当它接近0时,有可能指数效应引起梯度消失w参数初始化一般较小,但如果大于1了,很有可能引...
2019-09-17 11:31:58
2095
原创 CSRNet浅析
细看了CSRNet的代码,大致看了下paper,注意到一些细节image.py脚本是对数据的augmentationimport randomfrom PIL import Image,ImageFilter,ImageDrawimport numpy as npimport h5pyimport cv2def load_data(img_path, train=True): ...
2019-09-16 17:20:05
3130
1
原创 Python获取当前目录下所有文件的绝对路径并放在list中
os.listdir(path) 只能获取某个路径下所有的文件名字的list,而有时候需要获得该路径下所有的文件的绝对路径,一种简单的方法是:root = '/media/Disk/ShanghaiTech/'path = os.path.join(root, 'part_A_final', 'train_data', 'images')filenames = os.listdir(path...
2019-09-15 14:51:10
13869
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人