- 博客(156)
- 资源 (6)
- 收藏
- 关注
原创 Python多线程(重写Thread使其可以带返回值)
threading.Thread多线程,默认是没有返回值的如果需要返回每个线程的返回值,就需要重写函数import threadingimport time class MyThread(threading.Thread): def __init__(self,func,args=()): super(MyThread,self).__init__() self.func = func self.args = args de
2022-05-17 15:20:30
1152
原创 Pytorch中.detach()与.data()的用法
这里是官方文档对detach的定义实际上,detach()就是返回一个新的tensor,并且这个tensor是从当前的计算图中分离出来的。但是返回的tensor和原来的tensor是共享内存空间的。import torcha = torch.tensor([1.0, 2.0, 3.0], requires_grad = True)a = a.detach() # 会将requires_grad 属性设置为Falseprint(a.requires_grad)举个例子来说明一下det
2022-04-06 17:25:30
2820
原创 pytorch相关部分矩阵变换函数
1、tensor 维度顺序变换 BCHW顺序的调整tensor.permute(dims)将tensor的维度换位。参数是一系列的整数,代表原来张量的维度。比如三维就有0,1,2这些dimension。import torch a = torch.rand(8,256,256,3) #---> n,h,w,cprint(a.shape) b = a.permute(0,3,1,2) # ---> n,c,h,wprint(b.shape)#输出to...
2022-03-18 15:37:16
2130
原创 python读取图片进行对比
1、数组元素的比对,我们可以直接使用“==”进行比较,比如: 2、当数组元素较多时,查看输出结果便变得很麻烦,这时我们可以使用all()方法,直接比对a矩阵和b矩阵的所有对应的元素是否相等。 而any()方法是查看两矩阵是否有一个对应元素相等。all()操作就是对两个矩阵的比对结果再做一次与运算,而any则是做一次或运算Numpy判断数组是否相等判断数组是否相等一般是判断两个数组是否完全相等(array1 == array2) 返回两个矩阵中对应元素是否相等的逻辑值(array1
2022-03-01 14:08:44
1396
原创 Python-文件夹的拷贝操作
在Python中,想要实现文件夹的拷贝,需使用shutil包,其中文件复制的内置函数为shutil.copy这里介绍两种拷贝方式:第一种为文件夹整体拷贝:import osimport shutilsource_path = os.path.abspath(r'E:\Projects\source_dir')target_path = os.path.abspath(r'E:\Projects\new folder\target_dir')if not os.path.exists
2022-02-17 11:13:11
19388
2
原创 python读写json文件
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。JSON在python中分别由list和dict组成。这是用于序列化的两个模块:json: 用于字
2022-02-15 13:49:01
9629
原创 python搜索指定文件夹下所有图片文件
python搜索指定文件夹的某指定文件或某名称的所有文件,一般采用glob.glob函数,匹配文件路径,返回所有匹配的文件路径列表匹配符包括“*”、“?”和"[]",其中“*”表示匹配任意字符串,“?”匹配任意单个字符,[0-9]与[a-z]表示匹配0-9的单个数字与a-z的单个字符。glob.glob返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。下面是使用glob.glob的例子:import glob..
2022-01-24 15:24:51
3013
原创 Huggingface简介及BERT代码浅析
Hugging face 是一家总部位于纽约的聊天机器人初创服务商,令它广为人知的是Hugging Face专注于NLP技术,拥有大型的开源社区,尤其是在github上开源的自然语言处理,预训练模型库 Transformers。最初叫pytorch-pretrained-bert 。安装方式pip install transformers当报错:‘ValueError: Connection error, and we cannot find the requested files in .
2021-10-21 14:31:59
2588
原创 linux上运行python脚本,No such file or directory
在window平台下,写好python脚本文件,迁移到linux平台,赋过可执行权限,执行该sh文件,却提示No such file or directory。用vim打开sh文件,输入::setff回车,显示fileformat=dos,重新设置文件格式::setff=unix保存退出::wq 再执行,竟然可以了。程序尽量在linux下编写,迁移时,也许会少很多问题。...
2021-10-21 10:29:54
1167
1
原创 pytorch 压缩拉平通道的方法
pytorch有两种方法可以压缩拉平通道,例如将 N*C*W*H 转化为 N*C*WH 。1.view():元素总数不变改变形状'''view()是根据元素总数来改变tensor形状的,即变形后的tensor元素总数不变x.size[0]是x的第一个维度batch_size,-1代表自动计算该维度(其他所有维度合并)'''x = x.view(x.size[0],-1)2.flatten():将指定维度合并为一个维度#tensor拉平发生的位置#flatten的两种方式
2021-08-02 20:29:10
1542
原创 GCN理解
GCN简介深度学习一直都是被几大经典模型给统治着,如CNN、RNN等等,它们无论再CV还是NLP领域都取得了优异的效果,那这个GCN是怎么跑出来的?是因为我们发现了很多CNN、RNN无法解决或者效果不好的问题——图结构的数据。回忆一下,我们做图像识别,对象是图片,是一个二维的结构,于是人们发明了CNN这种神奇的模型来提取图片的特征。CNN的核心在于它的kernel,kernel是一个个小窗口,在图片上平移,通过卷积的方式来提取特征。这里的关键在于图片结构上的平移不变性:一个小窗口无论移动到图片的哪一
2021-07-31 14:25:28
2064
原创 pytorch如何打印参数名及具体值
state_dict():打印model中所有参数名。 named_parameters():打印model中所有参数名及具体的值(包括通过继承得到的父类中的参数)。for i in vgg16.state_dict(): print(i)for i in vgg16.named_parameters(): print(i)...
2021-07-28 15:27:59
3320
1
原创 caffe模型1X1卷积与FC互转
在caffe模型实际落地时,局限于硬件的问题,有时候训练好的网络结构需要进行微调,最近碰到NT98528输出不支持的问题,需要临时将1*1 conv改fc,先改prototxt,对应改下类型名称即可:#caffe 卷积层layer { name: "fc_1" type: "Convolution" bottom: "pool5" top: "fc_1" param { lr_mult: 1 } param { lr_mult: 1 } convo
2021-07-23 17:46:35
463
1
原创 无监督重识别:Cluster Contrast for Unsupervised Person Re-Identification
论文:https://arxiv.org/pdf/2103.11568.pdfcode:https://github.com/alibaba/cluster-contrast-reid在行人重识别领域,如何获取海量标注数据,提高实际场景的重识别能力是工业界非常关注的一个问题。通常在公开数据集如Maket1501上训练出来的模型在实际场景上基本是没法用的,都需要在实际场景中采集数据并进行标注,因此无监督的行人重识别方法成为了目前研究的一个热点。无监督行人重识别已经有很多人在研究了,目前最好的方
2021-07-22 19:24:12
1861
3
原创 Ubuntu下tmux的安装和使用
安装tmux,sudo apt install tmux。开启tmux窗口tmux,会自动进入tmux窗口,此时只分一个窗口。tmux命令一般由prefix key+command key触发,使用方式是按住prefix key,松开后按下command key。prefix key默认是Ctrl-b,即同时按住ctrl和b键。而command key列表如下:(1)对窗格的操作:%:左右分窗格;":上下分窗格;<arrow key>:窗格导航,如配合使用left方向键时会导航到当.
2021-06-30 11:02:27
510
原创 RGB转化为Gray图像 用于深度学习训练 PIL
因为实验需要,将RGB图像转化为Gray图像,采用扩充到三通道。import numpy as npfrom PIL import Imageimport pdbimport osimport cv2fix_image_width = 144fix_image_height = 288img_path = 'test.jpg'img = Image.open(img_path)# img = img.resize((144, 288), Image.ANTIALIAS)
2021-05-27 10:04:09
2823
原创 【ReID】Viewpoint-Aware Loss with Angular Regularization for Person Re-Identification
Viewpoint-Aware Loss with Angular Regularization for Person Re-Identification[1] 带角度正则化的视角感知损失。不同于视角和不同id之间分离研究的方向,文章提出了带角度正则化的视角感知损失 Viewpoint-Aware Loss with Angular Regularization (VA-reID),将行人视角投影到统一的特征子空间当中研究的方法,同时在id层面和视角层面有效建模了特征的分布。另外为了有效地拟合视角聚类标
2021-04-01 11:32:57
483
原创 关于pytorch中的distributedsampler函数使用
1.如何使用这个分布式采样器在使用distributedsampler函数时,观察loss发现loss收敛有规律,发现是按顺序读取数据,未进行shuffle。问题的解决方式就是怀疑 seed 有问题,参考源码DistributedSampler,,发现 shuffle 的结果依赖 g.manual_seed(self.epoch) 中的 self.epoch。 def __iter__(self): # deterministically shuffle based o.
2021-03-26 14:30:54
32219
15
原创 归一化、标准化、正则化的区别
归一化归一化(Normalization)是为了消除不同数据之间的量纲,方便数据比较和共同处理,比如在神经网络中,归一化可以加快训练网络的收敛性;1. 把数据变为(0,1)之间的小数,主要是为了方便数据处理,因为将数据映射到0~1范围之内,可以使处理过程更加便捷、快速。例如 nn.normalize()进行归一化。2. 把有量纲表达式变换为无量纲表达式,成为纯量。经过归一化处理的数据,处于同一数量级,可以消除指标之间量纲和量纲单位的影响,提高不同数据指标之间的可比性。3. 主要算法:线性转.
2021-03-18 14:15:34
3937
原创 PyTorch 中nn 与 nn.functional 的区别
pytorch中nn 与 nn.functional有很多相同的函数,这里整理别人的回答说明下:https://www.zhihu.com/question/66782101/answer/579393790nn 与 nn.functional的区别两者的相同之处:nn.Xxx和nn.functional.xxx的实际功能是相同的,即nn.Conv2d和nn.functional.conv2d 都是进行卷积,nn.Dropout 和nn.functional.dropout都是进行dropo
2021-03-16 19:53:53
578
原创 pytorch分布式训练TypeError: _queue_reduction(): incompatible function arguments.
使用pytorch分布式训练遇到报错TypeError: _queue_reduction(): incompatible function arguments. The following argument types are supported: 1. (process_group: torch.distributed.ProcessGroup, grads_batch: List[List[at::Tensor]], devices: List[int]) -> Tuple[tor
2021-03-16 16:17:09
1114
2
原创 scatter_()函数的详细介绍
scatter()和scatter_()的作用是一样的,只不过 scatter() 不会直接修改原来的 Tensor,而 scatter_() 会。PyTorch 中,一般函数加下划线代表直接在原来的 Tensor 上修改scatter_(input, dim, index, src):将src中数据根据index中的索引按照dim的方向填进input。可以理解成放置元素或者修改元素dim:沿着哪个维度进行索引index:用来 scatter 的元素索引src:用来 sca...
2021-03-12 14:36:54
7326
1
原创 Pytorch安装出现OSError: [WinError 126] 找不到指定的模块。 Error loading “xx\lib\site-packages\torch\lib\asmjit.dl
pytorch版本过高,重新安装低版本pytorch即conda install pytorch==1.3.0 torchvision一般建议虚拟环境安装# 创建pytorch36虚拟环境 pytorch-cpu可以自己设名字conda create -n pytorch-cpu python=3.6#查看创建的虚拟环境conda info --envs#激活环境activate pytorch36#升级pippython -m pip install --upg.
2021-03-08 10:21:55
3409
原创 No module named _caffe 和No module named caffe错误解决
1,在代码中进行 import caffe 后报错ImportError:No module named _caffe因为我显卡之前出错了,重现编译了caffe ,后面导致如上问题,解决方法如下:cd caffe #进入caffe目录,可能你的是cd caffe-mastersudo make clean #清除原编译sudo make -j4 # make -j4或者make -j8 这根据你自己电脑来定sudo make pycaffe ...
2021-03-04 11:33:20
2496
1
原创 深度学习中的不确定性:What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision
转载 : https://zhuanlan.zhihu.com/p/98756147原文:What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision? (NIPS 2017)深度学习模型给出的预测结果并不总是可靠的。在无人驾驶等安全性要求较高的领域中,完全依赖深度模型进行决策有可能导致灾难性的后果。如果能够让深度学习模型对于错误的预测给出一个较高的不确定性,我们就能判断一个预测结果可信程度。因此,我们需要对不确定
2021-03-01 20:51:24
7046
5
原创 pytorch 模型输出特征 保存npy
npy数据的保存与读取保存 利用这种方法,保存文件的后缀名字一定会被置为.npyx = 10numpy.save("data_x.npy",x)读取 data = numpy.load("data_x.npy")创建一个tensora = torch.arange(10)'''tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])device(type='cpu') 默认在cpu上'''1. CPU tensor转...
2021-02-22 20:00:22
6249
1
原创 python查看当前内存,清空内存方法
1.内存查看命令行及说明常用的Linux下查看内存内容的专用工具是free命令。在Linux下面,常用top命令来查看系统进程,top也能显示系统内存。Linux下内存查看命令free详解:在Linux下查看内存我们一般用free命令:$ free total used free shared buffers cachedMem: 3266180 3250004 16176...
2021-01-23 14:55:19
3417
原创 caffe训练模型踩到的几个坑
caffe训练流程简介:1、预训练模型在caffe中,预训练模型在脚本中设置,有时候拿到的预训练模型跟改过的prototxt对应不上,预训练的模型根据你当前网络的layer_name进行匹配参数,不是像pytorch一样可以按照尺寸加载。例如加入预训练原始网络的第一个卷积层name是conv1,而你自己的第一个卷积层网络name是Convolution1,那么这个层在预网络中的参数就不会被匹配调用。在实际使用时,有些层修改以后,尺寸与预训练模型对应不上,对应的name需要修改,否..
2020-12-31 11:08:03
529
原创 超强半监督学习 MixMatch
人类的学习方法是半监督学习,他们能从大量的未标记数据和极少量的标记数据学习,迅速理解这个世界。半监督学习最近有没有什么大的突破呢?我的Twitter账号被这篇 《The Quiet Semi-Supervised Revolution》【1】博客刷屏了。这篇博客介绍了 DeepMind 的 MixMatch 【2】方法,此方法仅用少量的标记数据,就使半监督学习的预测精度逼近监督学习。深度学习领域的未来可能因此而刷新。以前的半监督学习方案,一直以来表现其实都很差。你可能会想到 BERT 和 GPT,这两个
2020-12-18 11:28:01
1058
1
原创 CVPR2020_Hierarchical Feature Embedding for Attribute Recognition详解
摘要由于视点变化、光照变化和外观变化等原因,属性识别是一项重要而又具有挑战性的任务。以往的工作大多只考虑属性级特征嵌入,在复杂的多类别识别条件下性能较差。为了解决这一问题,我们提出了一种层次特征嵌入(HFE)框架,该框架通过结合属性和ID信息学习细粒度特征嵌入。在HFE中,我们同时维护了类间和类内特征的嵌入。将具有相同属性的样本和具有相同ID的样本更紧密地聚集在一起,限制了视觉上的难样本在属性方面的特征嵌入,提高了对变化条件的鲁棒性。我们利用由属性和ID约束组成的HFE loss建立了该层次结构。我们还
2020-12-17 20:54:16
1264
1
原创 CVPR_W2020Attribute-guided Feature Extraction and Augmentation Robust Learning for Vehicle Re-id详解
摘要车辆再识别是智能交通系统和智慧城市的核心技术之一,但类内多样性和类间相似性对现有方法提出了巨大的挑战。本文提出了一种利用属性信息,同时引入两种新的随机增益的多导学习方法,以提高训练过程中的鲁棒性。在此基础上,提出了一种属性约束方法和分组重排序策略来优化匹配结果。在CVPR 2020 AI城市挑战赛中,获得了66.83%的mAP和76.05%的rank-1准确率。本文提出的方法主要针对车辆ReID任务提取鲁棒特征,最后采用集成和重排序方法对结果进行优化。1.提出了一种利用属性信息进行车辆ReI
2020-12-16 15:05:34
620
3
原创 注意力机制总结senet cbam ecanet scnet gcnet
注意力机制大概分为以下,Spatial domain,Channel domain,Mixed domain以及Self-attention。接下来简单介绍这部分方法。SE-Net: Squeeze-and-Excitation NetworksSE-Net应用比较多,其基本原理是对于每个输出channel,预测一个常数权重,对每个channel加权一下。结构如下图:第一步每个通道H*W个数全局平均池化得到一个标量,称之为Squeeze,然后两个FC得到01之间的一个权重值,对原始的每个Hx
2020-12-08 19:37:34
10469
3
原创 caffemodel修改 layer name,修改参数层
修改layer nameimport caffeimport numpy as npcaffe.set_mode_cpu()net = caffe.Net('myprototxt.prototxt', 'mycaffemodel.caffemodel', caffe.TEST)netNew = caffe.Net('myprototxt2.prototxt', 'mycaffemodel2.caffemodel', caffe.TEST)for k, v in ne...
2020-12-07 23:08:11
1197
1
原创 ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks论文详解
论文链接:https://arxiv.org/abs/1910.03151代码地址:https://github.com/BangguWu/ECANet
2020-12-03 10:04:28
2916
原创 linux读取文件数目和大小
1、读取文件夹大小# 查看当前文件夹下所有文件的大小,list显示du -sh * 2、读取文件夹内文件数目# 查看当前文件夹下的文件数目ls -l | grep "^-" | wc -l#也可添加目录 ls -l /root/draco/ | grep "^-" | wc -l#或者是find ./ -maxdepth 1 -type f | wc -l 其中-maxdepth 1用于指定一层说明: ls -l 查看目录下文件信息 gre...
2020-11-30 15:54:58
671
原创 CVPR2020 Improving Convolutional Networks with Self-Calibrated Convolutions论文详解 SC-Net 注意力机制
论文:http://mftp.mmcheng.net/Papers/20cvprSCNet.pdf代码:https://github.com/MCG-NKU/SCNet《Improving Convolutional Networks with Self-calibrated Convolutions》 CVPR2020 南开大学程明明团队(将多尺度引入Resnet中的Res2Net)CNN的最新进展主要致力于设计更复杂的体系结构,以增强其特征表示能力,各种卷积模块工作层出不穷,性能涨点明显,包
2020-11-26 20:21:22
1638
2
原创 HydraPlus-Net: Attentive Deep Features for Pedestrian Analysis行人属性2017
HydraPlus-Net: Attentive Deep Features for Pedestrian Analysis,来自SenseTime的论文,提出了一个基于注意力机制的深度网络HydraPlus-Net,将多层注意力机制图多向映射到不同的特征层。由HP-Net得到的注意力深度特征具有几个优点:(1)模型能够从浅层到语义层捕获注意力;(2)挖掘多尺度的注意力特征,充实最终的行人特征表示。代码:https://github.com/xh-liu/HydraPlus-Net引言行人识别.
2020-11-25 14:48:38
297
原创 python 目标分类检测检索任务中,整理list常用函数小结
1.训练list整理判断list中是否有重复元素#!usr/bin/env python#encoding:utf-8 from collections import Counternum_list=[[1,2,3,4,4,5,6,6,6]# 直接使用set方法if len(num_list)!=len(set(num_list)): print 'have duplicates!!!'else: print 'no duplicates!!' #使用c.
2020-11-24 15:07:54
354
原创 fread解析,踩坑
前几日做一些琐碎事,用到fread函数,这里简单说下踩得坑。关于fread函数的返回值。在实际使用时,这个理解错了bug++。realRead= fread(buf,item,count,fp) (每次读item大小的数据块,分count次来读。)fread函数返回的并不是字节数,而是返回的是成功有效的读取的item元素的个数,而成功读入的字节数则是realRead * sizeof(item)realRead 是小于等于count的,当文件大小刚好为item大小的整数倍是才会...
2020-11-17 17:11:09
2840
论文笔记讲解:A Modulation Module for Multi-task Learning with Applications
2018-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人