三维Tensor维度分析,举例mask[0,:],mask[:,:,0],mask[:,0,:]

设三维张量的shape是x、y、z,则可理解为它是由x个二维张量构成,每个二维张量由y个一维张量构成,每个一维张量由z个标量构成。

在这里插入图片描述
三种颜色分别代表三个维度.

import torch
torch.manual_seed(seed=20200910)
a = torch.randn(3,4,5)
mask = a > 1.5
print(mask)
print(mask[0,:]) # 索引第0个矩阵
print(mask[:, :, 0]) # 索引每个矩阵,取得每行中的第1个元素.即每个矩阵的第1print(mask[:, 0, :]) # 索引每个矩阵,取得每列中的第1个元素.即每个矩阵的第1print(mask[1, 1, 1]) # 索引第二个矩阵的第一行,第二个元素
print(mask[1, ::2, ::2]) # 索引第二个矩阵,行和列都是每隔两个取一个
>>>mask:
tensor([[[False,  True,  True, False, False],
         [False, False, False, False,  True],
         [False, False,  True, False, False],
         [False,  True, False, False, False]],

        [[False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False,  True,  True],
         [False, False, False, False, False]],

        [[ True, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False]]])
	
>>>mask[0,:]:# 索引第0个矩阵
tensor([[False,  True,  True, False, False],
    [False, False, False, False,  True],
    [False, False,  True, False, False],
    [False,  True, False, False, False]])
    
========================================================================================================
 
 >>>mask:
tensor([[[False,  True,  True, False, False],
         [False, False, False, False,  True],
         [False, False,  True, False, False],
         [False,  True, False, False, False]],

        [[False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False,  True,  True],
         [False, False, False, False, False]],

        [[ True, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False]]])
                 
>>>mask[:, :, 0] # 索引每个矩阵,取得每行中的第1个元素.即每个矩阵的第1列
tensor([[False, False, False, False],
        [False, False, False, False],
        [True, False, False, False]])

========================================================================================================

 >>>mask:
tensor([[[False,  True,  True, False, False],
         [False, False, False, False,  True],
         [False, False,  True, False, False],
         [False,  True, False, False, False]],

        [[False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False,  True,  True],
         [False, False, False, False, False]],

        [[ True, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False]]])    

>>>mask[:, 0, :] # 索引每个矩阵,取得每列中的第1个元素.即每个矩阵的第1行
tensor([[False,  True,  True, False, False],
    	[False, False, False, False, False],
   	    [True, False, False, False, False]])

>>> mask[1, 1, 1] # 索引第二个矩阵的第一行,第二个元素
tensor(False)

>>> mask[1, ::2, ::2] # 索引第二个矩阵,行和列都是每隔两个取一个
tensor([[False, False, False],
        [False, False,  True]])
print(mask.sum(dim=0,keepdim=True))
print(mask.sum(dim=1,keepdim=True))
print(mask.sum(dim=2,keepdim=True))
>>>mask:
tensor([[[False,  True,  True, False, False],
         [False, False, False, False,  True],
         [False, False,  True, False, False],
         [False,  True, False, False, False]],

        [[False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False,  True,  True],
         [False, False, False, False, False]],

        [[ True, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False]]])
     
>>> mask.sum(dim=0,keepdim=True)
tensor([[[1, 1, 1, 0, 0],
         [0, 0, 0, 0, 1],
         [0, 0, 1, 1, 1],
         [0, 1, 0, 0, 0]]])
========================================================================================================

>>>mask:
tensor([[[False,  True,  True, False, False],
         [False, False, False, False,  True],
         [False, False,  True, False, False],
         [False,  True, False, False, False]],

        [[False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False,  True,  True],
         [False, False, False, False, False]],

        [[ True, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False]]])
         
>>> mask.sum(dim=1,keepdim=True)
tensor([[[0, 2, 2, 0, 1]],
     	[[0, 0, 0, 1, 1]],
        [[1, 0, 0, 0, 0]]])

========================================================================================================

>>>mask:
tensor([[[False,  True,  True, False, False],
         [False, False, False, False,  True],
         [False, False,  True, False, False],
         [False,  True, False, False, False]],

        [[False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False,  True,  True],
         [False, False, False, False, False]],

        [[ True, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False],
         [False, False, False, False, False]]])
         
>>> mask.sum(dim=2,keepdim=True)
tensor([[[2],
         [1],
         [1],
         [1]],

        [[0],
         [0],
         [2],
         [0]],

        [[1],
         [0],
         [0],
         [0]]])
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值