自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木盏

You only live once.

  • 博客(200)
  • 资源 (6)
  • 论坛 (2)
  • 收藏
  • 关注

原创 【2020-2021】计算机视觉、机器学习会议(持续更新)

更新时间:3/3/2021

2020-09-24 14:04:25 4284 2

原创 【GNN】图注意力网络GAT(含代码讲解)

毫无疑问,图神经网络(Graph Neural Networks)是泛计算机视觉领域内继CNN、GAN、NAS等之后的又一个研究热点,非常powerful。GAT是空域GNN的代表模型,Bengio大佬团队出品,发表在ICLR2018,目前谷歌引用已经1k了。它的特点是,很适合作为上手GNN模型。

2020-03-06 17:57:02 11125 32

原创 【ICCV2019】probabilistic face embeddings 概率人脸嵌入

概率人脸嵌入PFE:http://openaccess.thecvf.com/content_ICCV_2019/papers/Shi_Probabilistic_Face_Embeddings_ICCV_2019_paper.pdf这篇博文主体为对PFE的精细翻译,附带本人加的一些注释。摘要 通过比较隐语义空间的面部特征,嵌入方法已经在人脸识别领域取得了成功。然而,在完全无约束...

2019-10-29 11:35:01 3379 2

原创 Focal Loss(ICCV2017最佳学生论文)

Focal Loss由FAIR提出。Kaiming包揽了ICCV2017的最佳论文(Mask R-CNN)和最佳学生论文(Focal Loss)。按照国际惯例,给出Focal Loss的论文标题和链接:Focal Loss for Dense Object Detection http://openaccess.thecvf.com/content_ICCV_2017/papers/L...

2019-05-05 19:22:54 1981

原创 【AI数学】Batch-Normalization详细解析

声明:十分欢迎转载,但须先征求本人同意。BN目前已经成为了调参师面试必问题之一了。同时,BN层也慢慢变成了神经网络不可分割的一部分了,相比其他优化操作比如dropout, l1, l2, momentum,影子变量等等,BN是最无可替代的。论文标题: 《Batch Normalization: Accelerating Deep Network Training b y Reducing ...

2018-10-17 16:28:12 10329 16

原创 yolo系列之yolo v3【深度解析】

yolo_v3是我最近一段时间主攻的算法,写下博客,以作分享交流。 看过yolov3论文的应该都知道,这篇论文写得很随意,很多亮点都被作者都是草草描述。很多骚年入手yolo算法都是从v3才开始,这是不可能掌握yolo精髓的,因为v3很多东西是保留v2甚至v1的东西,而且v3的论文写得很随心。想深入了解yolo_v3算法,必须先了解v1和v2。以下是我关于v1和v2算法解析所写的文章: v1算法...

2018-09-12 16:24:48 322801 1279

原创 生成对抗网络——GAN(一)

Generative adversarial network据有关媒体统计:CVPR2018的论文里,有三分之一的论文与GAN有关! 由此可见,GAN在视觉领域的未来多年内,将是一片沃土(CVer们是时候入门GAN了)。而发现这片矿源的就是GAN之父,Goodfellow大神。 ~~~ 生成对抗网络GAN,是当今的一大热门研究方向。在2014年,被Goodfellow大神提出来,当时的G...

2018-07-30 23:38:08 43219 42

原创 RepVGG:重参数化——让VGG再次强大

这里的VGG指代各种平铺卷积的CNN,不带resnet那种shortcut。难得在这么浮躁的时代还有人在钻研改进VGG-style的CNN。VGG作为经典CNN的代表,事实上到如今都没有被淘汰,依然活跃在各种工程中。国际惯例,先放出原文:RepVGG: Making VGG-style ConvNets Great Again链接:https://arxiv.org/abs/2101.03697论文第一作者丁霄汉在知乎的解析:https://zhuanlan.zhihu.com/p/344324

2021-02-26 17:57:48 53 3

原创 从Pytorch模型pth文件中读取参数成numpy矩阵

目的:把训练好的pth模型参数提取出来,然后用其他方式部署到边缘设备。Pytorch给了很方便的读取参数接口:nn.Module.parameters()直接看demo:from torchvision.models.alexnet import alexnetmodel = alexnet(pretrained=True).eval().cuda()parameters = model.parameters()for p in parameters: numpy_para

2021-01-24 03:43:22 216 2

原创 【torchsummary】Pytorch模型参数统计工具

今天介绍的工具是torchsummary,可以用来统计PyTorch每层的参数情况。一来可以用于参数剪枝优化,二来可以用于了解模型的参数分布。安装:pip install torchsummary使用:from torchvision.models.alexnet import alexnetfrom torchsummary import summarymodel = alexnet(pretrained=True).eval().cuda()summary(model, i

2021-01-24 03:07:32 165 1

原创 使用TensorRT加速Pytorch模型(简单实用)

TensorRT是Nvidia官方给的推理加速工具,如同OpenVINO之于Intel。支持诸多的AI框架,如Pytorch,caffe,MXnet,tensorflow等。此外还对某些热门框架有特别的照顾,比如针对PyTorch有直接转换的工具torch2trt(咱们一会儿说)。

2021-01-21 17:06:04 504 5

原创 Pytorch模型转成onnx并验证结果(排坑经验帖)

很多时候有pytorch模型转onnx模型的必要,比如用tensorRT加速的时候。本文将介绍pytorch的pth模型如何转换成onnx,并且验证你转的模型对不对。先给官网链接:https://pytorch.org/docs/stable/onnx.html咱们直接用一段代码来看:(本人亲自整理,有问题可留言交流~)import os.path as ospimport numpy as npimport onnximport onnxruntime as ortimport t

2021-01-14 22:38:43 518 1

原创 从内存表现上简单分析Python中的拷贝

数据拷贝是Python较为容易出错的地方。本文针对等号复制、浅拷贝、深拷贝和可变对象、不可变对象来一一讲解。1. 等号复制在一般的编程语言中,习惯用“=”表示复制或拷贝。但这个在Python里面要特别注意。Python的等号只是传递变量的引用而已。哪怕只是传一个int型的变量,Python传的也只是引用(类似于C/C++的指针),只是在计算过程中会把结果用额外的空间存储,所以对于数值类型的变量,我们可以用等号复制。我们可以用id()来查看变量的地址:import ctypesa = 1b

2021-01-12 19:20:01 47

原创 【半精度】Pytorch模型加速和减少显存

如标题所示,这是PyTorch框架提供的一个方便好用的trick:开启半精度。直接可以加快运行速度、减少GPU占用,并且只有不明显的accuracy损失。

2021-01-11 16:04:08 302 1

原创 【Python可视化】matplotlib画动态曲线

matplotlib是python里最popular的画图工具,最近发现它可以用来画动态图。可以看看AI模型训练时候的loss曲线,accuracy变化等等。客观上,比tensorboard更简洁。代码还是很简单滴:import matplotlib.pyplot as pltfrom random import randomdef do_something(): for p in range(10000000): res += pfig, ax = plt.su

2021-01-05 20:35:21 349 1

原创 linux终端分割工具tmux

tmux可以把linux下的terminal分割成用户想要的样子,可以方便观测。1. 安装方法:(ubuntu下)sudo apt-get install tmux2. 快速使用方法tmux安装好以后,直接在终端输入tmux,就可以进入tmux会话。然后就可以分割窗口了。上下分割:tmux split-window左右分割:tmux split-window -h调整分割比例:左手按住ctrl+b不动,右手按方向键(上、下、左、右)。即可完成相应调整。 ..

2021-01-04 15:46:08 89

原创 python判断平面内一个点是否在多边形内

采用射线法就可以判断一个点是否在多边形内, 只需从点出发向右侧水平做出一条射线,如果跟多边形交点个数为奇数,则点在多边形内,否则在多边形外。看一张图就可以看懂啦图片来自:https://www.jianshu.com/p/ba03c600a557输入:P点坐标[px, py]多边形poly顶点坐标[[x1, y1], [x2, y2], ..., [xn, yn]]返回:True or False首先,利用循环对多边形每条边做同样对待。然后,判断是否有跟点P水平右向的射线是否有交点,

2020-12-15 16:57:37 443 4

原创 【以CVPR模板为实例】Ubuntu下搭建Latex编辑环境(texlive+texstudio)

本文旨在介绍一种ubuntu环境下最方便快捷的latex编辑+编译环境。并成功打开CVPR论文模板。注意本文的关键词:【方便】【快捷】。所有步骤推荐的方法不一定是最佳,但一定是最简单快捷的。本文分三步进行,编辑器->编译器->运行CVPR模板1. 首先是编辑器,在众多tex编辑器界面里,我一眼就相中了Tex Studio。名字有点visual studio的意思。(官网下载,直接安装,无须注册,毫无难度)直接戳链接,下载对应版本:http://texstudio.sourcefo

2020-12-02 14:00:15 1009

原创 Python将数据写入excel表格中保存

python读取excel可以参考:《python快速读取excel》这里用到的库是openpyxl,比较方便好用。直接pip install openpyxl就可以完成安装。先看一个小demo:from openpyxl import Workbookmybook = Workbook()wa = mybook.activewa.append([1, 2, 3])mybook.save('hh.xlsx')得到:如上,每个append就可以存入一行。再看一个demo:

2020-11-27 14:41:42 1073 2

原创 python指定源路径来解决import问题

用python做大型工程时,经常会出现import问题。比如,当你import另一个py文件时,这个py不存在于你的运行路径下,便会报错。大概有两种方法:如果在terminal里,咱们可以通过sys.path.append来添加运行路径;如果在pycharm环境里,咱们可以右键Mark Directory as Sources Root。举个栗子:vim head.pydef add(a, b): return a + bvim run.pyimport heada = 3

2020-11-10 13:14:29 677 1

原创 python中yield的用法【简明教程】

python中yield关键字是区分新老Pythoner的标志之一。yield是一个六级词汇,常见意思有“产量,屈服(动词)”。这里的yield大概率解释为一个僻义“缴出”。咱们在什么情况下,会用到yield呢?答:处理大型数据集的时候。yield单独解释比较费劲,但是跟next()结合看,就会非常简单。先看一个小栗子:a = [1, 2, 3]def y1(): for i in a: yield ib = y1()print(b)print(next(b)

2020-11-08 00:54:18 1193 2

原创 匈牙利算法(Hungarian Algorithm)

匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法。换句话说就是,在可以接受的时间内去做匹配。1. 描述问题给定2个集合A和B,然后将AB中的元素完成一个连线。(这不就是小时候的连线题么-_-)匈牙利算法就是要找到两个集合促成最多的匹配对!最佳媒婆。这里最适合举的例子就是相亲会。集合A代表所有男嘉宾,集合B代表所有女嘉宾。每个男女嘉宾都有自己的心动嘉宾,此为重要前提。通过一个算法,完成最多的牵线。借用https://blog.csdn.net/dark_scope/articl

2020-10-28 22:13:30 1584 3

原创 pytorch中tensor与其他数据结构的转化(int, list, array)

本文记录cpu张量、cuda张量、list和array之间的转换关系。import torchimport numpy as np# list -> tensor(cpu)l0 = [1, 2, 3]t = torch.Tensor(l0)# tensor(cpu) -> numpy -> lista = t.numpy()l1 = t.numpy().tolist()# list -> numpya0 = np.array(l0)# numpy -.

2020-10-27 19:39:26 944

原创 pytorch多卡训练(含demo)

用pytorch进行多GPU训练,只需要学会把单卡训练的代码稍微改一下即可。不用弄得太麻烦。通过一个demo来做是最快入手的。1. 要知道机器有几张卡:nvidia-smi2. 模型用DataParallel包装一下:device_ids = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 10卡机model = torch.nn.DataParallel(model, device_ids=device_ids) # 指定要用到的设备model = model..

2020-10-27 19:20:12 1305 2

原创 【AI数学】函数拟合之手写梯度反传的简单实验

本人一直对AI背后的数学原理非常感兴趣,今天做了一个“利用梯度反传来拟合函数”的小实验,此实验十分有利于深度学习初学者来了解梯度反向传播的计算步骤,所以顺便也分享一下。文章内容、公式推导和代码均为本人原创。有问题可以评论区交流。实验开始:首先,定义实验的目标函数(我们不知道它的公式,它揭示着自然规律,你只能输入然后看到输出结果,收集有限的样本对)。我们需要用梯度方向传播的方法来拟合这个目标函数。拟合的方法就是通过样本对来斧正咱们的原始函数。大概定义如下:目标函数:yˉ=5x+3\bar{y} =

2020-10-26 21:58:41 212

原创 Pytorch使用TensorBoard做可视化

TensorBoard是一款优秀的基于浏览器的机器学习可视化工具。之前是tensorflow的御用可视化工具,由于tensorboard是并不是读取tf张量,而是读取log进行可视化。所以,其他框架只需生成tensorboard可读的log,即可完成可视化。之前,我一直用visdom做pytorch可视化,也是非常易用。不过现在跟tensorboard对比,我还是更推荐tensorboard。visdom相比tensorboard只有一个优点,那就是自动实时刷新。而tensorboard无论从可视化

2020-10-09 20:42:48 1034

原创 python中的全局变量(global关键字)

全局变量,顾名思义,就是全局都可以使用的变量。一般定义在函数之外,然后函数内部通过global关键字描述,以区分函数内部的普通变量。一般,需要用到全局变量的地方,我都会把这些函数写成一个类,然后通过类属性变量的方法公用一个变量。不过,很多时候用不着大动干戈去写类。先看一个简单栗子:a = 0 # initialize variable adef coo(): global a # call a a += 1 return afor i in range(10):

2020-10-05 02:51:19 1524 1

原创 pytorch中的维度调换permute()函数

第一步,给出官方文档中关于permute的解释:https://pytorch.org/docs/stable/tensors.html?highlight=permute#torch.Tensor.permute第二步,我用白话解释一下官方文档。permute的中文意思是,“排列组合”。permute()可以对某个张量的任意维度进行调换。我们看一个demo:import torcha = torch.randn(2,3,5)b = a.permute(1,2,0)print(b

2020-09-23 14:28:34 803

原创 pytorch中的gather()函数

首先,给出官方文档的链接:https://pytorch.org/docs/stable/generated/torch.gather.html?highlight=gather#torch.gather然后,我用白话翻译一下官方文档。gather,顾名思义,聚集、集合。有点像军训的时候,排队一样,把队伍按照教官想要的顺序进行排列。还有一个更恰当的比喻:gather的作用是根据索引查找,然后讲查找结果以张量矩阵的形式返回。1. 拿到一个张量:import torcha = tor

2020-09-22 17:19:58 804

原创 python求数列均值、方差、标注差

1. 求均值:import numpy as npfrom time import timea = list(range(1, 100000))mean1 = np.mean(a) # method 1mean2 = sum(a) / len(a) # method 2从耗时上看,np.mean()时间会大于第二种方法。所以,求均值可以不推荐实用np模块。2. 求方差:一看方差的公式就知道自己写少不了加个for循环,所以这里推荐np模块import numpy a

2020-09-20 17:31:58 492

原创 【CVPR2018】Squeeze-and-Excitation Networks (SEnet)

这篇文章发表于CVPR2018,我在2018年就现场听过作者讲这篇文章(因为拖延症,现在才写博客)。这是当年的oral文章,也算Momenta团队近几年最后一个重磅点儿的学术工作了。国际惯例,先给出论文标题和链接。标题:Squeeze-and-Excitation Networks链接:https://arxiv.org/abs/1709.01507话说,在2018年以前,各种CNN结构百花齐放,从Alexnet,VGG,Inception到ResNet,DenseNet,到最后的SEnet。自

2020-09-10 22:21:16 326

原创 Ubuntu重装显卡驱动

本机环境如下:系统:ubuntu16.04GPU:RTX 2080tiCUDA: 10.1NVIDIA driver: 430.40不知为何,每用一段时间,显卡驱动就会崩。大概两个月会重装一次显驱,所以把步骤用博客记录一下:一共分6步1. 开机跳到F1界面:CTRL+ALT+F12. 关掉图形界面:sudo service lightdm stop3. 改变显驱文件的模式:sudo chmod a+x NVIDIA-Linux-x86_64-430.40.ru

2020-09-09 18:01:25 651

原创 pytorch获取模型的中间层输出结果

在inference阶段,整个模型会load到GPU上,进行端到端的计算,通常只会给你输出一个最终结果。如果想要获取模型的中间层输出,则需要在计算前标定目标层位置(通过forward返回),或者把模型在那层截断(当作一个小模型)输出。本文介绍2种获取模型中间层输出结果的方法:1. 标定目标层位置def forward(self, x): layer1_out = self.layer1(x) layer2_out = self.layer2(layer1_out) ou

2020-09-08 18:36:25 3076 3

原创 pytorch获取张量元素个数numel()的用法

numel就是"number of elements"的简写。numel()可以直接返回int类型的元素个数import torcha = torch.randn(1, 2, 3, 4)b = a.numel()print(type(b)) # intprint(b) # 24通过numel()函数,我们可以迅速查看一个张量到底又多少元素。...

2020-09-08 16:43:22 1326

原创 pytorch中view的用法(重构张量)

view在pytorch中是用来改变张量的shape的,简单又好用。pytorch中view的用法通常是直接在张量名后用.view调用,然后放入自己想要的shape。如tensor_name.view(shape)Example:1. 直接用法:>>> x = torch.randn(4, 4)>>> x.size()torch.Size([4, 4])>>> y = x.view(16)>>&gt...

2020-09-08 16:11:38 549

原创 【pytorch】RuntimeError: Integer division of tensors using div or / is no longer supported【解决】

ok, 能搜到这篇文章大概遇到了我已经遇到过的问题。今天把pytorch升级到1.6.0,发现tensor和int之间的除法不能直接用'/'。明明1.5.0都是可以用的-_-。火炬这种邻代兼容性有点值得吐槽。对于这个问题直接看官方文档就可以了:https://pytorch.org/docs/stable/generated/torch.div.html或者,看我的解决方案:对于tensor A和整数n之间的除法:result = A / n # not supported in to

2020-08-26 18:22:05 4791

原创 Linux终端自定义命令(超实用技巧)

今天记录的是一个能够体验linux terminal操作体验的技巧。技巧描述为:linux终端的任何命令都可以替换成其他的字符串来代替。具体怎么玩呢?逐步往下看,惊喜会越来越多。比如,我觉得查看GPU运行状态的nvidia-smi太长,每次输入都很麻烦,我想改成"mygpu"。操作如下:vim ~/.bashrc在文末加上一句:alias mygpu='nvidia-smi'然后:wq保存推出,再source一下:source ~/.bashrc这个时候,你的l

2020-08-18 21:27:30 2239 1

原创 Linux下的终端中用shell命令打开文件夹窗口

用惯了linux,总会一言不合ctrl+alt+t打开terminal操作文件。有的时候想看看文件,terminal那种文件显示太朴素,对于图像视频等文件的缩略图看不出来。所以今天推荐的工具是nautilus直接在命令行输入:nautilus直接会打开根目录的文件夹窗口。如果想打开当前目录的文件夹窗口,可以:nautilus .直接解决需求,干净又卫生。...

2020-07-31 14:56:10 1171

原创 python计算两个向量夹角

简单的小代码,项目里可能用到,记录一下:from math import sqrt, powdef angle_of_vector(v1, v2): pi = 3.1415 vector_prod = v1[0] * v2[0] + v1[1] * v2[1] length_prod = sqrt(pow(v1[0], 2) + pow(v1[1], 2)) * sqrt(pow(v2[0], 2) + pow(v2[1], 2)) cos = vector_pro

2020-07-10 12:55:58 1021

原创 pip清理cache以及安装模块时跳过cache

用pip安装python模块的时候,重复安装某一模块会经常出现“Using cache”,这样很容易装错版本。于是在stackoverflow找到大概两种方法。1. 直接跳过cache:(tqdm是栗子)pip install -U tqdm2. 清理pip cachecd ~/.cache/pipsudo rm -rf *注意:做rm的时候一定要看清楚路径,别删了库最后只能跑路了。参考链接:https://stackoverflow.com/questions/9510474

2020-07-08 21:19:31 2281 2

CVPR2018模板latex

这是CVPR论文的latex模板,由于国内访问overleaf经常不稳定、网速也慢,而且需要注册登录十分麻烦。于是我传到CSDN上方便大家交流学习使用。

2020-12-02

FCOS检测算法训练模型

FCOS检测算法在VOC数据集上的训练模型,直接下载可进行inference。配合代码https://github.com/leviome/fcos_pure 使用。具体教程看README.

2020-11-19

inception_dec_2015

这是来自https://storage.googleapis.com/download.tensorflow.org的模型文件,经常链接失效,或者下载速度奇慢。我花了很大功夫下载好,供大家使用。

2017-11-18

CVPR2018论文_oral_2

CVPR2018的oral论文合集,Oral一共有68篇,受上传文件大小限制,分成part1和part2压缩文件。Oral论文是CVPR中最优质的论文,best paper/honorable mention什么的都在oral里面。我花了很多工夫整理出来,来分享给各位CVer。还有少数几篇论文暂时没公开,所以只找出64篇。还有一点要说明:该文档仅作交流学习用处,不能当作商业用途。

2018-06-25

graphviz-2.38

在网上找到的安全无毒的graphviz-2.38,象征性收1分下载分

2018-08-05

CVPR2018论文_oral

CVPR2018的oral论文合集,Oral一共有68篇,受上传文件大小限制,分成part1和part2压缩文件。Oral论文是CVPR中最优质的论文,best paper/honorable mention什么的都在oral里面。我花了很多工夫整理出来,来分享给各位CVer。还有少数几篇论文暂时没公开,所以只找出64篇。还有一点要说明:该文档仅作交流学习用处,不能当作商业用途。

2018-06-25

木盏的留言板

发表于 2020-01-02 最后回复 2020-03-17

CSDN排名怎么搞的,我好几个月没进名次了

发表于 2018-08-17 最后回复 2018-08-17

空空如也

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

TA关注的人 TA的粉丝

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