torch.stack()学习

生成张量a

#张量a 维度 3X4
a=th.tensor([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(a)
tensor([[ 1,  2,  3,  4],
        [ 5,  6,  7,  8],
        [ 9, 10, 11, 12]])
print(a.shape)
torch.Size([3, 4])

生成张量b

#生成张量b 维度3X4
b=th.tensor([[10,20,30,40],[50,60,70,80],[90,100,110,120]])
print(b)
tensor([[ 10,  20,  30,  40],
        [ 50,  60,  70,  80],
        [ 90, 100, 110, 120]])
print(b.shape)
torch.Size([3, 4])

分别在3个维度上拼接:

#dim=-1
tmd1=th.stack((a,b),dim=-1)
print(tmd1)
tensor([[[  1,  10],
         [  2,  20],
         [  3,  30],
         [  4,  40]],
        [[  5,  50],
         [  6,  60],
         [  7,  70],
         [  8,  80]],
        [[  9,  90],
         [ 10, 100],
         [ 11, 110],
         [ 12, 120]]])
print(tmd1.shape)
torch.Size([3, 4, 2])

可以这样理解(不一定与官方定义一致),上面的中括号一共有3层,分别是最里面一层比如[1,10],中间一层比如[[  1,  10], [  2,  20], [  3,  30],[  4,  40]],和最外边一层,这三层分别对应一个长方体的长宽高,最外层对应宽是3,中间层对应长方体长是4,最里层维度是2,就是正方体高是2

画一个三维张量图观察一下:

下面也是一样的道理

#dim=0
tmd2=th.stack((a,b),dim=0)
print(tmd2)
tensor([[[  1,   2,   3,   4],
         [  5,   6,   7,   8],
         [  9,  10,  11,  12]],
        [[ 10,  20,  30,  40],
         [ 50,  60,  70,  80],
         [ 90, 100, 110, 120]]])
print(tmd2.shape)
torch.Size([2, 3, 4])

绘制对应的三维图:

tmd3=th.stack((a,b),dim=1)
print(tmd3)
tensor([[[  1,   2,   3,   4],
         [ 10,  20,  30,  40]],
        [[  5,   6,   7,   8],
         [ 50,  60,  70,  80]],
        [[  9,  10,  11,  12],
         [ 90, 100, 110, 120]]])
print(tmd3.shape)
torch.Size([3, 2, 4])

绘制对应的三维图

以上内容仅为个人学习过程中的总结,如果有错误,请批评指正!

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值