torch.相关函数

torch.nonzero()

Docstring:nonzero(input, *, out=None, as_tuple=False) -> LongTensor or tuple of LongTensors
涉及的参数主要是输入和 as_tuple,其实就是是否返回到一个元组,默认不是元组。
看下面的例子就懂了。

"""as_tuple=False的默认情况"""
>>> torch.nonzero(torch.tensor([1, 1, 1, 0, 1]))
    tensor([[ 0],
            [ 1],
            [ 2],
            [ 4]])     # 返回的是非0元素的索引,并且是索引的矩阵,shape= (非零元素,1)
            
>>> torch.nonzero(torch.tensor([[0.6, 0.0, 0.5, 0.0],
                                [0.0, 0.4, 0.0, 0.0],
                                [0.0, 0.0, 1.2, 0.0],
                                [0.0, 0.0, 0.0,-0.4]]))
    tensor([[ 0,  0],
    	    [ 0,  2],
            [ 1,  1],
            [ 2,  2],
            [ 3,  3]])     #返回非零元素的在矩阵中的索引,每个元素都包含行列索引,shape= (非零元素,2)
  

"""as_tuple=True的默认情况"""
 >>> torch.nonzero(torch.tensor(5), as_tuple=True)
    (tensor([0]),)        # 返回其实也是一个张量的索引,只是将它放在了一个元组里

    >>> torch.nonzero(torch.tensor([1, 1, 1, 0, 1]), as_tuple=True)
    (tensor([0, 1, 2, 4]),)    #没区别,但是要提取列表里的某个元素,必须两个索引值,它们是一个整体,比如要提取1,[0][1]
 >>> torch.nonzero(torch.tensor([[0.6, 0.0, 0.5, 0.0],
                                [0.0, 0.4, 0.0, 0.0],
                                [0.0, 0.0, 1.2, 0.0],
                                [0.0, 0.0, 0.0,-0.4]]), as_tuple=True)
                  #返回的是两个列表张量 构成 的一个元组,元组[0]是非零元素依次的行位置,元组[1]是非零元素依次的列位置,                 
    (tensor([0, 0, 1, 2, 3]), tensor([0, 2, 1, 2, 3]))  

总结:其实as_tuple=True返回元组没有什么用,如果需要非零元素的行位置或者列位置就可以设置一下,其实也就是as_tuple=False返回的第一列和第二列。

X.permute(dims)

将tensor的维度换位
https://zhuanlan.zhihu.com/p/76583143

torch.flatten(t,start_dim=开始维度,end_dim=结束维度)

将矩阵的某些维度降维处理,但是元素不丢失

t = torch.arange(120,).reshape(2,3,4,5)

t

t.shape

torch.flatten(t,start_dim=1,end_dim=-2)

torch.flatten(t,start_dim=1,end_dim=-2).shape
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值