
pytorch
文章平均质量分 55
DRACO于
这个作者很懒,什么都没留下…
展开
-
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 · 2897 阅读 · 0 评论 -
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 · 2202 阅读 · 0 评论 -
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 · 1617 阅读 · 0 评论 -
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 · 3989 阅读 · 1 评论 -
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 · 2964 阅读 · 0 评论 -
归一化、标准化、正则化的区别
归一化归一化(Normalization)是为了消除不同数据之间的量纲,方便数据比较和共同处理,比如在神经网络中,归一化可以加快训练网络的收敛性;1. 把数据变为(0,1)之间的小数,主要是为了方便数据处理,因为将数据映射到0~1范围之内,可以使处理过程更加便捷、快速。例如 nn.normalize()进行归一化。2. 把有量纲表达式变换为无量纲表达式,成为纯量。经过归一化处理的数据,处于同一数量级,可以消除指标之间量纲和量纲单位的影响,提高不同数据指标之间的可比性。3. 主要算法:线性转.原创 2021-03-18 14:15:34 · 4163 阅读 · 0 评论 -
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 · 604 阅读 · 0 评论 -
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 · 1185 阅读 · 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 · 7444 阅读 · 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 · 3517 阅读 · 0 评论 -
注意力机制总结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 · 10806 阅读 · 3 评论 -
resnet预训练模型下载
model_urls = { 'resnet18': 'https://download.pytorch.org/models/resnet18-5c106cde.pth', 'resnet34': 'https://download.pytorch.org/models/resnet34-333f7ec4.pth', 'resnet50': 'https://downlo...原创 2019-10-09 09:12:37 · 6844 阅读 · 1 评论 -
python学习之打印输出参数
训练的时候我们可以保存所有的训练参数以及各种指标等首先这部分是如何设置打印输出结果的,import timeepoch=0,epochs=450batch=0train_loader=751def display_loss(batch): log=[] for i in range(10): # print("----",i,i /(batc...原创 2019-05-28 11:51:07 · 4230 阅读 · 0 评论 -
pytorch中的transform函数
torchvision.transforms是pytorch中的图像预处理包一般用Compose把多个步骤整合到一起:transforms.Compose([transforms.CenterCrop(10),transforms.ToTensor(),])这样就把两个步骤整合到一起。transforms中的函数Resize:把给定的图片resize到given ...原创 2019-04-02 14:42:53 · 3605 阅读 · 0 评论 -
PyTorch学习之六个学习率调整策略
PyTorch学习率调整策略通过torch.optim.lr_scheduler接口实现。PyTorch提供的学习率调整策略分为三大类,分别是a. 有序调整:等间隔调整(Step),按需调整学习率(MultiStep),指数衰减调整(Exponential)和 余弦退火CosineAnnealing。b. 自适应调整:自适应调整学习率 ReduceLROnPlateau。c. 自定义调整:...转载 2019-04-13 15:38:50 · 2847 阅读 · 0 评论 -
Pytorch:variable and nn.Module
# coding=utf-8import torchfrom torch.autograd import Variable """pytorch中Variable了解""""""Variable是Pytorch中autograd自动微分模块的核心。它封装了Tensor,支持几乎所有的tensor操作。主要包含如下3个属性:1. data: 保存Variable所包含的Tenso...原创 2019-04-26 14:59:06 · 289 阅读 · 0 评论 -
BN在不同框架下对比介绍
1、caffeBN层主要有均值, 方差,γγ,ββ四个参数,其中γγ,ββ是要学习的参数一个代表的是缩放系数,也就是将分布变胖或者变瘦,一个是偏移系数,将分布左右移动。进行BN操作的主要目的是,将数据的分布归一化到非线性函数敏感的区域也即线性区,避免进入饱和区,因为一旦进入饱和区,就会造成梯度消失,γγ,ββ适当的将分布进行了变胖变瘦或者移动的这样的一个操作。其中BN的均值,方差,beta...原创 2019-04-22 20:38:27 · 974 阅读 · 0 评论 -
pytorch -----.data 与 .detach(),
在 0.4.0 版本之前, .data 的语义是 获取 Variable 的 内部 Tensor, 在 0.4.0 版本将 Variable 和 Tensor merge 之后, .data 和之前有类似的 语义, 也是 内部的 Tensor 的概念.x.data与 x.detach() 返回的 tensor 有相同的地方, 也有不同的地方:相同:都和 x 共享同一块数据 都和 x...原创 2019-04-23 15:58:05 · 5978 阅读 · 3 评论 -
pytorch Parameter 设置 可学习参数
一般来说,pytorch 的Parameter是一个tensor,但是跟通常意义上的tensor有些不一样1)通常意义上的tensor 仅仅是数据2)而Parameter所对应的tensor 除了包含数据之外,还包含一个属性:requires_grad(=True/False)在Parameter所对应的tensor中获取纯数据,可以通过以下操作:param_d...原创 2019-05-05 11:37:18 · 17845 阅读 · 9 评论 -
pytorch 预训练模型读取修改相关参数填坑
修改部分层,仍然调用之前的模型参数。resnet = resnet50(pretrained=False)resnet.load_state_dict(torch.load(args.predir))res_conv31 = Bottleneck_dilated(1024, 256,dilated_rate = 2)print("---------------------",res_...原创 2019-05-07 16:23:14 · 8327 阅读 · 3 评论 -
senet小结
论文:《Squeeze-and-Excitation Networks》论文链接:https://arxiv.org/abs/1709.01507代码地址:https://github.com/hujie-frank/SENet最近在做行人检索时,优化时用到channel attention机制,虽然对最终结果没有提升,这里做一个简单的总结1. 概述 此论文是由Momenta...原创 2019-05-10 11:30:46 · 1226 阅读 · 0 评论 -
目标检测之感受野-dilated conv -----TridentNet
论文:Scale-Aware Trident Networks for Object DetectionGithub:https://github.com/TuSimple/simpledet/tree/master/models/tridentnet图森的工作论文提出了TridentNet ,基于ResNet-101 的基础骨架网络在coco数据集上达到了单模型48.4的准确性...转载 2019-05-11 11:13:22 · 1895 阅读 · 0 评论 -
torch初始化block
修改过的block没有预训练模型,初始化res_stripe4_stage5= Bottleneck(256, 512, downsample=nn.Sequential(nn.Conv2d(256, 2048, 1, bias=False), nn.BatchNorm2d(2048))# Bottleneck(256, 512,downsample=nn.Sequential(Order...原创 2019-05-16 15:45:00 · 641 阅读 · 0 评论