pytorch函数
总结常用torch函数
skycrygg
这个作者很懒,什么都没留下…
展开
-
grid_sample()
torch.nn.functional.grid_sample(input, grid, mode='bilinear', padding_mode='zeros', align_corners=None)提供一个input的Tensor以及一个对应的flow-field网格(比如光流,体素流等),然后根据grid中每个位置提供的坐标信息(这里指input中pixel的坐标),将input中对应位置的像素值填充到grid指定的位置,得到最终的输出。关于input、grid以及output的尺寸如下.转载 2020-08-01 18:42:26 · 3491 阅读 · 0 评论 -
pytorch数据统计
norm-p(范数)通过设置dim,在不同维度上进行范数计算统计属性min,max,mean:最小、最大、平均prod():累乘 sum():求和首先会将tensor展开,从而计算索引值argmax():返回最大值的索引argmin():返回最小值的索引如果需要返回指定类型的索引值,需要指定维度dim,keepdimkeepdim:保证得到的结果维度个数与原先的维度个数一致(防止维度缺失)Top-k/ k-thTop-k(...原创 2020-07-28 22:01:44 · 598 阅读 · 0 评论 -
tensor运算符
基础加减法遇到不匹配情况,会自动进行broadcasting进行维度匹配后,再进行操作运算符得到了重载乘法Torch.mm():仅在2维中使用Torch.matmul()@重载后的乘法操作符即使是多维矩阵相乘,实际相乘的仍然是最后两维数据,所以前后行列向量维数必须匹配当其他维度不匹配时,仍然使用Broadingcast进行维度匹配后运算Power&sqrt.rsqrt():平方根的倒数对数、指数近似值floor():向下取整原创 2020-07-28 21:38:13 · 694 阅读 · 0 评论 -
Pytorch的Tensor操作(2)
Broadcasting依旧是扩展功能,且不需要拷贝数据过程:先检查维度是否相同 从最小维度(最右面最小)开始匹配,在前面添加1维度 然后将维度为“1”的部分,扩展到对应维度相同大小实际应用,对某个Tensor加一个标量,将标量自动匹配到目标张量的数据类型适用情况:(1): 某一维度相同,或为1(2):某一部分维度相同(3):不符合规则:只能为“1”或相同拼接与拆分Catdim决定在哪个维度进行合并dim = 0di...原创 2020-07-28 21:18:40 · 414 阅读 · 0 评论 -
Pytorch的Tensor操作(1)
类型推断torch.randn():随机初始化a.type():返回类型type():返回基本类型isinstance() :检查类型cuda会影响数据类型标量维度(dimention)为0的标量标量的shape:返回类型为【】(空的list),返回长度也为0a.dimension()也为0Dim1torch.tensor() : 输入具体数据torch.FloatTensor() :输入类型大小Dim1的shapeD...原创 2020-07-28 19:54:11 · 2216 阅读 · 0 评论 -
super 的用法
1、继承在Python中,同时支持单继承与多继承,一般语法如下: class SubClassName(ParentClass1 [, ParentClass2, ...]): class_suite 实现继承之后,子类将继承父类的属性,也可以使用内建函数insubclass()来判断一个类是不是另一个类的子孙类: class Parent(object): ''...转载 2020-03-20 20:10:52 · 186 阅读 · 0 评论 -
permute()用法
permute(dims)将tensor的维度换位。参数:参数是一系列的整数,代表原来张量的维度。比如三维就有0,1,2这些dimension。例:import torchimport numpyas npa=np.array([[[1,2,3],[4,5,6]]])unpermuted=torch.tensor(a)print(unpermuted.size())...原创 2020-03-20 20:12:17 · 4967 阅读 · 1 评论 -
PyTorch中view的用法
相当于numpy中resize()的功能,但是用法可能不太一样。大致操作: 把原先tensor中的数据按照行优先的顺序排成一个一维的数据(这里应该是因为要求地址是连续存储的),然后按照参数组合成其他维度的tensor。比如说是不管你原先的数据是[[[1,2,3],[4,5,6]]]还是[1,2,3,4,5,6],因为它们排成一维向量都是6个元素,所以只要view后面的参数一致,得到的...原创 2020-03-05 11:04:43 · 511 阅读 · 0 评论 -
torch.nn.functional.unfold()
函数定义:def unfold(input, kernel_size, dilation=1, padding=0, stride=1): """ input: tensor数据,四维, Batchsize, channel, height, width kernel_size: 核大小,决定输出tensor的数目。稍微详细讲 dilation: 输出形式是否...转载 2020-03-05 10:46:53 · 5356 阅读 · 0 评论 -
torch.split()
torch.split(tensor,split_size_or_sections,dim=0) torch.split()作用将tensor分成块结构。参数:tesnor:input,待分输入 split_size_or_sections:需要切分的大小(int or list ) dim:切分维度 output:切分后块结构 <class 'tuple'&g...转载 2020-01-07 22:06:01 · 68989 阅读 · 4 评论 -
torch.cat()
torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起。>>> import torch>>> A=torch.ones(2,3) #2x3的张量(矩阵) >>> Atensor([[ 1., 1...原创 2020-01-07 21:58:33 · 1362 阅读 · 0 评论 -
torch.stack() 与 torch.cat()
torch.stack(tensors,dim=0,out=None)→ Tensortorch.stack()将序列连接,形成一个新的tensor结构,此结构中会增加一个维度。连接中的每个tensor都要保持相同的大小。参数:tensors:需要连接的结构dim:需要扩充的维度output:输出的结构例子:import torch l = [...转载 2020-01-07 18:21:40 · 776 阅读 · 0 评论 -
torch.ones(),torch.add(),torch.zeros(),torch.squeeze()
Tensor与numpy相互转换import torchx=torch.Tensor(2,3)#生成一个2*3的Tensor张量 将Tensor转换为numpy数组y=x.numpy() 将numpy数组转换为Tensorimport numpy as npz=torch.from_numpy(x) torch.ones()torch.ones(*sizes, o...转载 2020-01-07 16:38:20 · 43262 阅读 · 3 评论