Pytorch中的tensor常用 *** 作

Pytorch中的tensor常用 *** 作,第1张

在指定的维度dim上对序列seq进行连接 *** 作。

参数:

例子:

torch.Tensor.expand( sizes)* → Tensor

返回张量的一个新视图,可以将张量的单个维度扩大为更大的尺寸。

张量也可以扩大为更高维,新增加的维度将附在前面。 扩大张量不需要分配新内存,仅仅是新建一个张量的视图。任意一个一维张量在不分配新内存情况下都可以扩展为任意的维度。

传入-1则意味着维度扩大不涉及这个维度。

参数:

例子:

torch.squeeze(input, dim=None, out=None) → Tensor

除去输入张量input中数值为1的维度,并返回新的张量。如果输入张量的形状为( [图片上传失败...(image-786ec5-1580566115084)]

),那么输出张量的形状为( [图片上传失败...(image-a0a179-1580566115084)]

)。

当通过dim参数指定维度时,维度压缩 *** 作只会在指定的维度上进行。如果输入向量的形状为( [图片上传失败...(image-1088a1-1580566115084)]

),squeeze(input, 0)会保持张量的维度不变,只有在执行squeeze(input, 1)时,输入张量的形状会被压缩至( [图片上传失败...(image-759892-1580566115084)]

)。

如果一个张量只有1个维度,那么它不会受到上述方法的影响。

输出的张量与原张量共享内存,如果改变其中的一个,另一个也会改变。

参数:

例子:

torch.Tensor.repeat( sizes)*

沿着指定的维度重复张量。不同于expand()方法,本函数复制的是张量中的数据。

参数:

例子:

torch.Tensor.unfold(dim, size, step) → Tensor

返回一个新的张量,其中元素复制于有原张量在dim维度上的数据,复制重复size次,复制时的步进值为step。

参数:

例子:

torch.Tensor.narrow(dimension, start, length) → Tensor

返回一个经过缩小后的张量。 *** 作的维度由dimension指定。缩小范围是从start开始到start+length。执行本方法的张量与返回的张量共享相同的底层内存。

参数:

例子:

torch.Tensor.view( args)* → Tensor

返回一个有相同数据但是不同形状的新的向量。

返回的装两必须与原张量有相同的数据和相同的元素个数,但是可以有不同的尺寸。

参数:

例子:

torch.Tensor.resize_( sizes)*

将张量的尺寸调整为指定的大小。如果元素个数比当前的内存大小大,就将底层存储大小调整为与新元素数目一致的大小。

如果元素个数比当前内存小,则底层存储不会被改变。原来张量中被保存下来的元素将保持不变,但新内存将不会被初始化。

参数:

例子:

torch.Tensor.permute( dims)*

将执行本方法的张量的维度换位。

参数:

例子:

torch.Tensor.element_size() → int

查看某类型张量单个元素的字节数。

例子:

PyTorch 常用方法总结4:张量维度 *** 作(拼接、维度扩展、压缩、转置、重复……) - TH_NUM的博客 - CSDN博客

pytorch中与维度/变换相关的几个函数 - MaloFleur - CSDN博客

Numpy与Pytorch 矩阵 *** 作 - 坩埚上校的博客 - CSDN博客

Pytorch对Tensor的各种“特别” *** 作 - LightningCode的博客 - CSDN博客

Pytorch中的矩阵 *** 作:

    随机矩阵: torch.randn(d0, d1, d2, ...)

    添加维度: tensor.unsqueeze(0)

    压缩维度: tensor.squeeze(0)

    按维度拼接tensor: torch.cat(inputs, dim=0, ...)

    维度堆叠: torch.stack(inputs, dim=0)

    张量排序索引: tensor.sort(descending=True) 返回一个tensor为排序后的tensor, 一个为index_tensor

    把原始tensor在某个维度上根据输入的排序:torch.permute()

    矩阵元素夹逼: tensor.clamp()

    矩阵切割: torch.chunk(tensor, chunks, dim)

    矩阵复制: torch.repeat(*size)

    生成零矩阵: torch.torch.zeros(5, 3, dtype=torch.long)

    生产同形状的随机矩阵:x = torch.randn_like(x, dtype=torch.float)

    矩阵扩张:torch.expand()  , torch.expand_as(matrix)

    矩阵转置:x.transpose(dim0= ,dim1= )

    矩阵中函数名以’_’结尾的,如:y.add_(x),运算结束后会改变y本身

Pytorch对Tensor的各种“特别” *** 作:

小技巧:可以用:id()和 tensor.device 查看变量的id和位于cpu上还是gpu上。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11433749.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存