
pytorch
zouxiaolv
踏实、稳重、前行
展开
-
torch.roll 函数的理解
2. shifts (python:int 或 tuple of python:int) —— 张量元素移位的位数。如果该参数是一个元组(例如shifts=(x,y)),dims必须是一个相同大小的元组(例如dims=(a,b)),相当于在第a维度移x位,在b维度移y位。简单理解:shifts的值为正数相当于向下挤牙膏,挤出的牙膏又从顶部塞回牙膏里面;shifts的值为负数相当于向上挤牙膏,挤出的牙膏又从底部塞回牙膏里面。3. dims (int 或 tuple of python:int) 确定的维度。转载 2022-11-28 11:14:51 · 529 阅读 · 0 评论 -
保姆级讲解Transformer
保姆级讲解Transformer_WGS.的博客-优快云博客转载 2022-11-22 16:58:09 · 117 阅读 · 0 评论 -
AssertionError: Default process group is not initialized
在tool/train.py开头加入如下语句即可。原创 2022-11-08 08:25:25 · 1351 阅读 · 0 评论 -
hrformer
【代码】hrformer。原创 2022-11-07 15:52:53 · 923 阅读 · 0 评论 -
多头注意力机制的计算流、代码解析
这个N*[8*C1]的输出结果,经过[8*C1]*C2的全连接,得到N*C2的输出O。比如计算8个头的Q,K,V时,每个头计算Q要用一次矩阵乘法,计算K要用一次矩阵乘法,计算V要用一次矩阵乘法。用这个相关系数矩阵 和 v 进行矩阵的乘法,得到8*N*C1 的注意力输出结果,转化为N*[8*C1]然后8个头的q,k,v 一起并行进行注意力机制的计算,得到拼接在一起的N*[8*C1]的矩阵。将8个头的Q 合并为N*[8*C1]的q。将8个头的V 合并为N*[8*C1]的v。原创 2022-11-03 09:38:13 · 1062 阅读 · 0 评论 -
Pytorch常用函数-Flatten
Flatten含义flatten的中文含义为“扁平化”,具体怎么理解呢?我们可以尝试这么理解,假设你的数据为1维数据,那么这个数据天然就已经扁平化了,如果是2维数据,那么扁平化就是将2维数据变为1维数据,如果是3维数据,那么就要根据你自己所选择的“扁平化程度”来进行操作,假设需要全部扁平化,那么就直接将3维数据变为1维数据,如果只需要部分扁平化,那么有一维的数据不会进行扁平操作。torch.flatten()方法有三个参数,分别:1、全部扁平化转载 2022-10-30 16:55:06 · 2024 阅读 · 0 评论 -
深度学习模型参数量/计算量和推理速度计算
自己按照自己的模型内容编写推理速度。原创 2022-09-27 10:33:46 · 649 阅读 · 0 评论 -
scatter_()函数的详细介绍
eg. LongTensor中的第1行第0列的值为2,即索引index=2,表示在第2行(从0开始)进行填充,对应到zeros(3, 5)中就是位置(2,0)。],也就是index的里面的值就是需要填充张量里面的行,即绿色的零。红色的零就是取值张量的列,对应到需要填充张量的列数。的零就是取值张量的列,对应到需要填充张量的列数。的零就是取值张量的列,对应到需要填充张量的列数。],也就是index的里面的值就是需要填充张量里面的行,即。],也就是index的里面的值就是需要填充张量里面的行,即。原创 2022-09-16 21:43:13 · 1568 阅读 · 0 评论 -
Pytorch基础:Torch.mul、Torch.mm与Torch.matmul的异同
基础:Torch.mul、Torch.mm与Torch.matmul的异同。转载 2022-09-06 16:11:39 · 355 阅读 · 0 评论 -
F.pad 的理解
F.pad是pytorch内置的tensor扩充函数,便于对数据集图像或中间层特征进行维度扩充,下面是pytorch官方给出的函数定义。input需要扩充的tensor,可以是图像数据,抑或是特征矩阵数据pad扩充维度,用于预先定义出某维度上的扩充参数mode扩充方法,’constant‘, ‘reflect’ or ‘replicate’三种模式,分别表示常量,反射,复制value。...转载 2022-08-30 20:28:32 · 839 阅读 · 1 评论 -
卷积层计算量(FLOPS)和参数量的计算
对于一张图片一个点需要的乘法计算:in_c*kh*kw,有out_c*in_h*in_w,因此总的浮点数是:in_c*kh*kw*out_c*in_h*in_w。对于卷积有batchsize个输入样本,batchsize*in_c*kh*kw*out_c*in_h*in_w。原创 2022-08-26 14:57:18 · 312 阅读 · 0 评论 -
UserWarning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instea
我这个就是不是出现如下错误代码,但是我是按照如下图所示的标记:mask--->mask.bool没有了警告。原创 2022-08-11 21:03:32 · 319 阅读 · 0 评论 -
DRConv-pytorch改称输出和输入一样的尺寸
代码】DRConv-pytorch改称输出和输入一样的尺寸。原创 2022-07-23 17:34:09 · 664 阅读 · 0 评论 -
pytorch利用nn.unfold重新实现卷积操作
然后就用pytorch自带的matmul,把kernels的展开乘unfold之后的inputtensor(c_0*w_k*h_k,w_1*h_1)得到OutputMaps,维度为(c_1,w_1*h_1)unfold之后,我们构造c_1个可以学习的tensor(c_0,w_k,h_k)作为kernels,并把它像左下图那样展开成(c_1,c_0*w_k*h_k),注意这里的c_1是kernel的个数。......转载 2022-07-20 20:11:45 · 697 阅读 · 0 评论 -
深度学习论文: LEDnet: A lightweight encoder-decoder network for real-time semantic segmentation及其PyTorch实现
无原创 2022-07-13 10:02:05 · 449 阅读 · 0 评论 -
Pytorch nn.functional.unfold()的简单理解与用法
滑动窗口是2*2然后滑动输入的范围是2*2,比如滑动第一个是输出是拉平变成依次就变成以上的输出形式原创 2022-06-30 09:49:00 · 628 阅读 · 0 评论 -
mixconv代码
讲解就是 :先将输入进行分组,分完租后,每一个组采用不同的卷积核大小,用深度可分离卷积完成卷积过程缺点:类似inception,分组越多,速度降低越快。只关注参数量降低原创 2022-06-28 18:38:48 · 560 阅读 · 0 评论 -
可视化成为热力图
【代码】可视化成为热力图。原创 2022-09-16 21:31:03 · 638 阅读 · 0 评论 -
nn.Parameter】Pytorch特征融合自适应权重设置(可学习权重使用)
【nn.Parameter】Pytorch特征融合自适应权重设置(可学习权重使用)_陈嘿萌的博客-优快云博客_pytorch 特征融合转载 2022-06-23 08:34:05 · 1523 阅读 · 0 评论 -
pytorch训练自己网络后可视化特征图谱的代码
网上的其他博客可视化特征图谱无法实现自己训练的网络可视化特征图谱参考博客:可视化pytorch网络特征图_hello_dear_you的博客-优快云博客_pytorch特征图可视化原创 2022-06-23 07:32:01 · 414 阅读 · 2 评论 -
人体姿态估计的热图变成坐标点的两种方案
no转载 2022-06-17 16:08:43 · 693 阅读 · 2 评论 -
PyTorch疑难杂症(1)——torch.matmul()函数用法总结
NO转载 2022-06-15 20:33:56 · 284 阅读 · 0 评论 -
【无标题】
对于求得的是一个(batchsize,channel,h,w)-------> (batchsize,channel,1,1)就是将H,W方向求平均的一个值。对于是空间注意力机制采用sigmoid就可以求得空间位置像素的权值,这个是一个值,每一个位置都乘以这一个值。......原创 2022-06-13 14:50:45 · 76 阅读 · 0 评论 -
nn.softmax各种维度的理解
我认为比较好的参考链接nn.softmax()默认的是dim=0nn.Softmax(dim=?) - 知乎转载 2022-06-11 18:56:29 · 601 阅读 · 0 评论 -
Dite-HRNet: Dynamic Lightweight High-Resolution Network for Human PoseEstimation
阅读此篇文章的感触:首先针对ACM提出两种类型:DCM和GCM1. 首先介绍ACM的组成:① 提出------adaptive context pooling, 包括一个1*1操作和softmax,以及transpose操作②context shifting, 就是将context pooling特征图谱经过两个 1 × 1 convolutions with non-linear activation(1*1+BN+ReLu+1*1+BN+ReLu)和sigmoid函数③ 将求得的shift通道权重与输入原创 2022-06-11 09:23:25 · 1268 阅读 · 0 评论 -
torch.split用法
关于torch.split用法简单总结:torch.split,用来划分tensor,可以从数量上划分,还有维度上划分。torch.split(tensor,split_szie,dim),split_size有整数,也有列表,dim默认为0,自己也可以修改。tensor:输入张量split_size:张量的大小,这里面包含整数或者列表dim:从哪个维度切割代码示例1:输入是一个5*2维度的张量对于y的输出是从dim=0进行切割,也就是从5切割,切割的分配比例是第一个tensor维度大小变成1*2原创 2022-06-08 20:41:48 · 812 阅读 · 0 评论 -
Lightweight Image Super-Resolution with Information Multi-distillation Network
论文的contrast-aware channel attention module对于IMDB的代码有一些讲解,channel split不是对半平分channel,而是采用:总的channel*ratia,剩余的channel=总的channel - 总的channel*ratia,原创 2022-06-08 20:55:45 · 753 阅读 · 0 评论 -
Dite-HRNet采用了动态卷积核操作
无原创 2022-06-06 19:44:37 · 625 阅读 · 0 评论 -
Dynamic Convolution: Attention over Convolution Kernels (CVPR-2020)
ddd原创 2022-06-06 09:45:06 · 301 阅读 · 0 评论 -
Dite-HRNet训练遇到的问题
waijiajuedui在summary_network出现类似的问题,都是在“xxx”改成“--xxx”,外加绝对地址就可以。关于test,我实在pycharm测试不是在终端测试的,出现的错误是没有checkpoint问题。原创 2022-10-18 16:48:37 · 308 阅读 · 0 评论 -
测试flop runningtime,paras等代码
GitHub - sunny2109/MobileSR-NTIRE2022: Official Pytorch code for MobileSR: A Mobile-friendly Transformer for Efficient Image Super-Resolution(代码来源)原创 2022-06-01 16:15:25 · 344 阅读 · 0 评论 -
nn.sigmoid()
无原创 2022-06-01 09:43:48 · 6315 阅读 · 0 评论 -
Pytorch小记-torch.nn.Softmax(dim=1)如何理解?
无原创 2022-06-01 09:41:27 · 5820 阅读 · 0 评论 -
pytorch 网络循环
import torch.nn as nnclass A (nn.Module): def __init__(self): super(A, self).__init__() self.c1 = nn.Conv2d(256,256,1) self.c2 = nn.Conv2d(256,256,1) def forward(self,x): x1=x for i in range(3): .原创 2022-04-29 17:54:47 · 470 阅读 · 0 评论 -
pytorch入坑一 | Tensor及其基本操作
pytorch入坑一 | Tensor及其基本操作 - 知乎转载 2021-12-01 10:20:48 · 112 阅读 · 0 评论 -
torch.argmax中dim详解
orch.argmax()函数argmax函数:torch.argmax(input, dim=None, keepdim=False)返回指定维度最大值的序号,dim给定的定义是:the demention to reduce.也就是把dim这个维度的,变成这个维度的最大值的index。例如tensor(2, 3, 4)dim=0,将第一维度去掉,这样结果为tensor(3, 4)。import torcha=torch.tensor([ [转载 2021-10-22 14:41:54 · 3437 阅读 · 0 评论 -
einops张量操作神器(支持PyTorch)
https://github.com/arogozhnikov/einops安装:pip install einopsfrom einops import rearrange # rearrange elements according to the patternoutput_tensor = rearrange(input_tensor, 'h w c -> c h w')用'h w c -> c h w'就完成了维度调换,这个功能与pytorch中的permute转载 2021-07-29 09:38:30 · 925 阅读 · 0 评论 -
pytorch之RuntimeError: Expected object of scalar type Long but got scalar type Float for argument #3
RuntimeError: Expected object of scalar type Long but got scalar type Float for argument #3 'mat1' in call to _th_addmm_该错误就是数据类型问题,标红的地方就是需要变成的真正数据类型原创 2021-04-30 08:56:09 · 372 阅读 · 0 评论 -
pytorch 之 RuntimeError: one of the variables needed for gradient computation has been modified by an
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [1, 64, 92, 122]], which is output 0 of LeakyReluBackward0, is at version 1; expected version 0 instead. Hint: the backtra转载 2021-04-27 08:38:51 · 542 阅读 · 0 评论 -
pytorch之nn.Sequential类详解——使用Sequential类来自定义顺序连接模型
前言:类似于keras中的序贯模型,当一个模型较简单的时候,我们可以使用torch.nn.Sequential类来实现简单的顺序连接模型。这个模型也是继承自Module类的,关于这个类,后面的文章会详细介绍。一、关于Sequential类的简介这样看起来,Sequential似乎是一个容器,的确,他确确实实是可以作为一个容器包装机各层,我在下一篇文章会说到,这里还是先简单看一下它的定义:class Sequential(Module): # 继承Module def __init__(转载 2021-03-31 10:27:01 · 2214 阅读 · 0 评论