- 博客(112)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
转载 Pytorch is_leaf
转载更正自Pytorch框架之is_leaf–查看是否为叶张量所有被需要计算梯度的变量直接赋值(不进行任何操作)创建的都是叶张量,注意不要包含任何操作a = torch.rand(10, requires_grad=True) # 直接赋给a,所以a.is_leaf为Truea = torch.rand(10, requires_grad=True, device="cuda") # 直接创建赋给a的,所以为Truea = torch.rand(10, requires_grad=True)
2021-05-21 22:07:46
602
原创 np.random.shuffle np.random.permutation的速度差异
现象我们发现np.random.permutation要比np.random.shuffle快很多x = np.random.rand(50000, 2)# 933 µs %timeit x.take(np.random.permutation(x.shape[0]), axis=0)# 1.41 ms%timeit x[np.random.permutation(x.shape[0])]# 1.41 ms%timeit np.random.permutation(x)# 46.3 ms
2021-03-21 19:57:57
1022
原创 两步验证的工作原理
为了安全性,我们常常使用二次验证,一般是6位的数字,常见的应用场景是银行的口令卡,游戏账户,公司的vpn登录等使用流程用户在一个“相对安全”登录到服务器后,开启激活二次验证服务器根据用户名生成一个密钥,返回一个包含该信息的二维码或者直接返回字符串:...
2020-10-26 22:53:33
2520
转载 Pycharm无法识别__init__里import的包,ctrl时无法跳转
Pycharm无法识别我项目模块的包。我注意到已经有相当多的问题,但我尝试了所有给定的解决方案,没有任何作用。我试过了:-Mark directory as source root&检查Add sources root to pythonpath- 打开一个不同的项目,然后重新打开原来的项目,使pycharm重新索引包有什么建议吗?我回答了以下问题PyCharm does not recognize modules installed in development mo...
2020-07-08 15:15:53
7926
5
原创 捕捉SIGKILL信号(kill -9)
-9 KILL (non-catchable, non-ignorable kill)kill -9 is SIGKILL and Unix system by design doesn’t allow any script/program to trap SIGKILL due to security reasons. Otherwise any script can trap & ...
2020-02-10 16:22:49
8856
2
原创 Momentum Contrast for Unsupervised Visual Representation Learning
Motivation已有的利用contrastive learning做unsupervised visual representation learning要么受限于GPU不能使用大batch,要么不能保证query和key一致因此本文提出了Momentum Contrast (MoCo),利用队列和moving-averaged encoder构建一个动态字典Review Unsuper...
2019-11-18 22:12:31
4940
5
原创 Tutorial: Knowledge Distillation
概述Knowledge Distillation(KD)一般指利用一个大的teacher网络作为监督,帮助一个小的student网络进行学习,主要用于模型压缩。其方法主要分为两大类Output DistillationFeature DistillationOutput DistillationMotivation主要拉近teacher和student最终输出的距离,参考论文:...
2019-11-14 22:08:40
818
原创 Knowledge Distillation via Route Constrained Optimization
Motivation已有的KD方法提升性能都是基于一个假设:teacher模型可以提供一种弱监督,且能被一个小student网络学习,但是实际上一个收敛的大网络表示空间很难被student学习,这会导致congruence loss很高因此本文提出一种策略route constrained optimization,根据参数空间的route去选择teacher的参数,一步一步的指导studen...
2019-11-14 22:02:15
1343
原创 FitNets: Hints for Thin Deep Nets
其实应该先早点写这篇文章的这篇文章主要是将hinton的output distillation扩展到了feature distillation该loss用来拉进student和teacher feature的距离该loss就是与hard label、soft label做cross entroy训练过程需要注意:先进行hints training,即选择某一层feature对...
2019-11-14 21:59:21
1224
原创 Distilling the Knowledge in a Neural Network
其实应该最先写这篇文章的总结的,之前看了忘了记录Motivationone hot label会将所有不正确的类别概率都设置为0,而一个好的模型预测出来的结果,这些不正确的类别概率是有不同的,他们之间概率的相对大小其实蕴含了更多的信息,代表着模型是如何泛化判别的。比如一辆轿车,一个模型更有可能把它预测成卡车而不是猫,这其实给出了比one hot label更多的信息即轿车和卡车更像,而和...
2019-11-14 21:55:59
323
原创 Correlation Congruence for Knowledge Distillation
Motivation目前大多数KD框架的pipeline一张图片送入teacher和student得到各自的feature和output然后定义loss,拉进feature或者output的距离但是他们都是直接在一个整图级别上做的,student很难学习到teacher的那种处理类内和类间的能力如下图:白色空心圈是期望学习到的效果左边是期望类间可以拉开,右边是期望类内可以聚拢M...
2019-11-14 21:53:02
813
原创 A Comprehensive Overhaul of Feature Distillation
MotivationClovaAI今年ICCV做了还几篇总结性的工作,该篇也类似,先总结当下做feature distillation的各个方向,总体的pipeline是选取student和teacher网络结构的某个位置然后对特征进行变换,最后拉进他们的距离Teacher transform: 为了让teacher和student的feature map一样大(空间或者通道),会对teac...
2019-11-07 20:53:33
3110
原创 Attention Transfer
Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention TransferMotivation大量的论文已经证明Attention在CV、NLP中都发挥着巨大的作用,因为本文利用Attention做KD,即让student学习tea...
2019-11-07 20:48:05
1846
原创 Be Your Own Teacher: Improve the Performance of Convolutional Neural Networks via Self Distillation
Loss Source 1: Cross entropy loss,各个阶段的分类器都有Loss Source 2: KL loss,深层的分类器作为浅层分类器的teacherLoss Source 3: L2 loss from hints,深层分类器的特征和浅层分类器的特征做L2 loss,bottleneck即feature adaptation,为了使student和teacher一...
2019-11-07 20:44:43
1507
原创 Similarity-Preserving Knowledge Distillation
Motivation下图可以发现,语义相似的输入会产生相似的激活。这个非常好理解,这个C维的特征向量可以代表该输入的信息因此本文根据该观察提出了一个新的蒸馏loss,即一对输入送到teacher中产生的特征向量很相似,那么送到student中产生的特征向量也应该很相似,反义不相似的话同样在student也应该不相似。该loss被称为Similarity-preserving,这样studen...
2019-11-05 22:04:14
3597
原创 On the Efficacy of Knowledge Distillation
Motivation实验观察到:并不是性能越好的teacher就能蒸馏(教)出更好的student,因此本文想梳理出影响蒸馏性能的因素推测是容量不匹配的原因,导致student模型不能够mimic teacher,反而带偏了主要的loss之前解决该问题的做法是逐步的进行蒸馏,但是效果也不好。左边Teacher为WRN k-1,k是深度,Student是WRN16-1和DN40-12(D...
2019-11-01 19:05:54
1682
原创 Revisit Knowledge Distillation: a Teacher-free Framework
Observations通过几组实验观察到反转Knowledge Distillation(KD)即利用student来guide teacher的话,teacher的性能依然可以得到提升用一个比student还差的teacher来guide student的话,student的性能依然可以得到提升因此作者得到以下观点KD只是一种可学习的label smoothing regula...
2019-10-30 21:42:08
2114
原创 Distilling Object Detectors with Fine-grained Feature Imitation
Motivation检测起更focus在物体出现的区域 Detectors care more about local near object regions.物体出现的周围特征变化其实包含了更多重要信息,这是student网络需要向teacher网络学习的注解:与分类不同,蒸馏方法在检测中如果进行全特征模仿的话对子网络的提升很有限(这里存疑,文章没有明确指出全特征模仿了哪些特征层)。...
2019-10-30 21:30:52
1982
原创 NLP pretrained model
最近在公司听了NLP pretrained model的报告,感觉受益匪浅,特此分享。此处大量参考从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史Word Embedding词向量在自然语言处理中有着重要的角色,它将抽象的词语之间的语义关系量化成向量形式。有了良好的词向量,我们就可以做更多的工作。目前构建词向量的方式大体上分成两大类:统计方法:通过统计词语...
2019-10-27 21:12:15
907
原创 2-D CTC Loss
2D-CTC for Scene Text RecognitionMotivation普通的CTC仅支持1-d,但是文字识别不像语音识别,很多时候文字不是水平的,如果强行“压”到1d,对识别影响很大,如下图所示Review 1-D CTC首先对alphabeta进行扩充,加入blank符号,然后定义一个映射规则: blank之间的相同字符可以去重计算loss时,对每个gt labe...
2019-10-18 17:37:47
1599
1
原创 CTC Loss和Focal CTC Loss
最近一直在做手写体识别的工作,其中有个很重要的loss那就是ctc loss,之前在文档识别与分析课程中学习过,但是时间久远,早已忘得一干二净,现在重新整理记录下本文大量引用了- CTC Algorithm Explained Part 1:Training the Network(CTC算法详解之训练篇),只是用自己的语言理解了一下,原论文:Connectionist Temporal C...
2019-07-24 17:48:27
4497
原创 头条面试题-统计有序数组里平方和的数目
#include <iostream>using namespace std;int get_square_n(int*a, int i, int j){ int cnt = 0; while(i < j){ while(i<j && (a[i]*a[i]) == (a[j]*a[j])){ i++; j--;...
2019-07-21 12:13:39
368
原创 最大连通域
#include <iostream>using namespace std;int max_area=0;void dfs(int a[][10], int i, int j, int h, int w, int flag, int area){ a[i][j] = -flag; if(i-1>=0 && a[i-1][j] > 0)...
2019-07-21 11:08:18
2259
原创 c++静态库链接顺序引发的bug
最近做个OpenCV的项目,搞了半个月一直解决不了,最后发现是静态库链接顺序的问题问题描述以及解决办法最近用emsdk将c/c++转到wasm,用到emsdk里面./emcc来编译c/c++,注意emsdk自带的clang版本是clang3.x# Makefile-lopencv_core -lopencv_highgui -lopencv_imgproc编译后出现一下错误,很多网...
2019-06-11 22:21:06
3727
原创 graphcut/banded graphcut/grabcut解读
最近手头有个项目需要加速graph cut,这里就参考一篇论文banded graph cut: A Multilevel Banded Graph Cuts Method for Fast Image Segmentation(链接: https://pan.baidu.com/s/1-1Wjlzkgd2bd5rynwvKAtg 提取码: num5)Graph Cut首先回忆下graph...
2019-06-11 21:51:55
797
原创 int8量化和tvm实现
量化主要有两种方案直接训练量化模型如Deepcompression,Binary-Net,Tenary-Net,Dorefa-Net对训练好的float模型(以float32为例)直接进行量化(以int8为例),这边博客主要讲这个int8量化原理将已有的float32型的数据改成A = scale_A * QA + bias_A,B类似,NVIDIA实验证明可以去掉bias,即A ...
2019-05-17 16:55:23
6511
4
原创 C++类对象的内存模型
虚函数表#include using namespace std;class Father{public: Father(){}; void ShowName(){ cout"Father"<<endl; }};class Son : public Father{public: Son(){}; void ShowNa
2019-05-06 15:40:55
6793
2
原创 c++隐藏
今天才知道c++继承里面的隐藏特性,真是孤陋寡闻了。#include <iostream>using namespace std;class A{public: void print() {cout<<"A"<<endl;}};class B:public A{public: void print(int a) ...
2019-04-30 14:55:07
2839
1
原创 对象切片(object slicing)和多态
在函数传参处理多态性时,如果一个派生类对象在UpCasting时,用的是传值的方式,而不是指针和引用,那么,这个派生类对象在UpCasting以后,将会被slice成基类对象。https://www.zhihu.com/question/30570897/answer/48574116https://blog.youkuaiyun.com/beckle_ye/article/details/470...
2019-04-30 11:52:49
3115
原创 贪心、递归和动态规划
贪心每个阶段的最优状态都是由上一个阶段的最优状态得到的而上一状态是如何得到的动态规划每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到而不管之前这个状态是如何得到的 举例: 每个阶段的最优状态由上一阶段的某些(所有)状态有关,而不管上一段的各种状态是怎么得到的 多段图
2019-04-30 11:19:06
547
原创 anchor free系列检测方法
one stage和two stage是目标检测的主流方法,最近由deng老板引领的anchor free方法另辟蹊径,以关键点检测为基础来做检测,也算是one stage的一种吧CornerNetExtremNetCenterNet(Objects as Points)超喜欢的一篇工作...
2019-04-29 16:33:10
7579
原创 TridentNet解读
检测领域一直存在一个scale variation问题,大小物体对视野域的需要是不一样的,deformable cnn的作者daijifeng老师就提到一个说法:最好的视野域就是刚好“覆盖自己”,不要太大也不要太小。前人有3种途径利用RCNN去原图上扣proposal,强制使得所有物体的视野域就是自己 Revisiting RCNN: On Awakening the Classificat...
2019-04-25 12:01:56
2214
原创 Mobilenet v1/2和Shufflenet v1/v2
好久没写深度学习方面的文章了,偷闲再写一篇衡量指标FLOPS:floating point operations per second,每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。FLOPs:floating point operations,浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。MACC: Multiply–accumulate operatio...
2019-04-10 17:32:00
1047
原创 LeetCode11-盛最多水的容器
/* * @lc app=leetcode.cn id=11 lang=cpp * * [11] 盛最多水的容器 * * https://leetcode-cn.com/problems/container-with-most-water/description/ * * algorithms * Medium (52.87%) * Total Accepted: 29.7...
2019-03-05 22:09:00
237
原创 LeetCode4:两个排序数组的中位数
问题/* * @lc app=leetcode.cn id=4 lang=cpp * * [4] 寻找两个有序数组的中位数 * * https://leetcode-cn.com/problems/median-of-two-sorted-arrays/description/ * * algorithms * Hard (33.60%) * Total Accepted: ...
2019-03-05 21:22:59
330
原创 normalization专题
normalization大体分为3类feature normalization、weight normalization和gradient normalization,本文主要讲feature normalization,其他两个涉及的数学较多,一时无法理清Feature normalizationBatch normalizationLayer normalizationInsta...
2019-02-23 16:41:18
840
原创 style transfer/domain adaption简介
Texture Synthesis Using Convolutional Neural NetworksImage Style Transfer Using Convolutional Neural Networks 16年cvpr和A neural algorithm of artistic style. 15年8月一样的吧开篇之作,送入一张噪音图片,然后通过content和style ...
2019-02-11 20:45:40
1379
转载 卷积神经网络结构简述(二)Inception系列网络
Inception是电影《盗梦空间》的外文原名,寓意是起点/开端,里面有一句经典的台词是: “we need to go deeper”,Inception Network取名于此卷积神经网络结构简述(二)Inception系列网络WILL深度学习搬砖者关注他50 人赞了该文章作为一名初入茅庐的搬砖者,最近在用深度学习做图像分类任务,粗略的学习了下卷积神经网络近几年结构的升级。根据个人的理...
2019-01-13 15:52:39
5113
Android内核编译后刷入手机启动不了
2015-10-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人