Python 基础torch.stack(tensors: Union[Tuple[Tensor, ...], List[Tensor]], dim: _int=0, *, out: Option)

stack(inputs, dim=) :沿着一个新维度对输入张量序列进行连接。 序列中所有的张量都应该为相同形状。

np.stack()

import numpy as np
a=np.array([i for i in range(24)]).reshape(3,4,2)
b=np.array([i for i in range(24,48)]).reshape(3,4,2)
c=np.array([i for i in range(48,72)]).reshape(3,4,2)
print(a)
print(b)
print(c)
new_array1=np.stack([a,b,c],axis=0)
print("new_array1:",new_array1,"shape1:",new_array1.shape)
new_array2=np.stack([a,b,c],axis=1)
print("new_array2:",new_array2,"shape1:",new_array2.shape)
new_array3=np.stack([a,b,c],axis=2)
print("new_array3:",new_array2,"shape3:",new_array3.shape)
[[[ 0  1]
  [ 2  3]
  [ 4  5]
  [ 6  7]]

 [[ 8  9]
  [10 11]
  [12 13]
  [14 15]]

 [[16 17]
  [18 19]
  [20 21]
  [22 23]]]
[[[24 25]
  [26 27]
  [28 29]
  [30 31]]

 [[32 33]
  [34 35]
  [36 37]
  [38 39]]

 [[40 41]
  [42 43]
  [44 45]
  [46 47]]]
[[[48 49]
  [50 51]
  [52 53]
  [54 55]]

 [[56 57]
  [58 59]
  [60 61]
  [62 63]]

 [[64 65]
  [66 67]
  [68 69]
  [70 71]]]
new_array1: [[[[ 0  1]
   [ 2  3]
   [ 4  5]
   [ 6  7]]

  [[ 8  9]
   [10 11]
   [12 13]
   [14 15]]

  [[16 17]
   [18 19]
   [20 21]
   [22 23]]]


 [[[24 25]
   [26 27]
   [28 29]
   [30 31]]

  [[32 33]
   [34 35]
   [36 37]
   [38 39]]

  [[40 41]
   [42 43]
   [44 45]
   [46 47]]]


 [[[48 49]
   [50 51]
   [52 53]
   [54 55]]

  [[56 57]
   [58 59]
   [60 61]
   [62 63]]

  [[64 65]
   [66 67]
   [68 69]
   [70 71]]]] shape1: (3, 3, 4, 2)
new_array2: [[[[ 0  1]
   [ 2  3]
   [ 4  5]
   [ 6  7]]

  [[24 25]
   [26 27]
   [28 29]
   [30 31]]

  [[48 49]
   [50 51]
   [52 53]
   [54 55]]]


 [[[ 8  9]
   [10 11]
   [12 13]
   [14 15]]

  [[32 33]
   [34 35]
   [36 37]
   [38 39]]

  [[56 57]
   [58 59]
   [60 61]
   [62 63]]]


 [[[16 17]
   [18 19]
   [20 21]
   [22 23]]

  [[40 41]
   [42 43]
   [44 45]
   [46 47]]

  [[64 65]
   [66 67]
   [68 69]
   [70 71]]]] shape1: (3, 3, 4, 2)
new_array3: [[[[ 0  1]
   [ 2  3]
   [ 4  5]
   [ 6  7]]

  [[24 25]
   [26 27]
   [28 29]
   [30 31]]

  [[48 49]
   [50 51]
   [52 53]
   [54 55]]]


 [[[ 8  9]
   [10 11]
   [12 13]
   [14 15]]

  [[32 33]
   [34 35]
   [36 37]
   [38 39]]

  [[56 57]
   [58 59]
   [60 61]
   [62 63]]]


 [[[16 17]
   [18 19]
   [20 21]
   [22 23]]

  [[40 41]
   [42 43]
   [44 45]
   [46 47]]

  [[64 65]
   [66 67]
   [68 69]
   [70 71]]]] shape3: (3, 4, 3, 2)

np.stack()和torch.stack()是一样的

torch.stack(tensors: Union[Tuple[Tensor, …], List[Tensor]], dim: _int=0, *, out: Option)

import torch
d=torch.randint(0,24,(3,4,2))
e=torch.randint(24,48,(3,4,2))
f=torch.randint(48,72,(3,4,2))
print(d)
print(e)
print(f)
new_tensor4=torch.stack([d,e,f],dim=0)
print("new_tensor4:",new_tensor4,"new_tensor4.shape:",new_tensor4.shape)
new_tensor5=torch.stack([d,e,f],dim=1)
print("new_tensor5:",new_tensor5,"new_tensor5.shape:",new_tensor5.shape)
new_tensor6=torch.stack([d,e,f],dim=2)
print("new_tensor6:",new_tensor6,"new_tensor6.shape:",new_tensor6.shape)
new_tensor7=torch.stack([d,e,f],dim=3)
print("new_tensor7:",new_tensor7,"new_tensor7.shape:",new_tensor7.shape)
tensor([[[ 0, 23],
         [ 9, 13],
         [ 2, 17],
         [19, 22]],

        [[13, 23],
         [ 5, 15],
         [10,  8],
         [ 6, 12]],

        [[20,  3],
         [ 3, 13],
         [15,  3],
         [22, 22]]])
tensor([[[33, 37],
         [46, 38],
         [34, 42],
         [40, 32]],

        [[39, 30],
         [46, 26],
         [41, 33],
         [37, 28]],

        [[45, 31],
         [46, 37],
         [36, 27],
         [41, 45]]])
tensor([[[48, 56],
         [49, 67],
         [71, 53],
         [62, 71]],

        [[54, 52],
         [55, 48],
         [69, 63],
         [58, 63]],

        [[57, 56],
         [69, 71],
         [68, 62],
         [71, 56]]])
new_tensor4: tensor([[[[ 0, 23],
          [ 9, 13],
          [ 2, 17],
          [19, 22]],

         [[13, 23],
          [ 5, 15],
          [10,  8],
          [ 6, 12]],

         [[20,  3],
          [ 3, 13],
          [15,  3],
          [22, 22]]],


        [[[33, 37],
          [46, 38],
          [34, 42],
          [40, 32]],

         [[39, 30],
          [46, 26],
          [41, 33],
          [37, 28]],

         [[45, 31],
          [46, 37],
          [36, 27],
          [41, 45]]],


        [[[48, 56],
          [49, 67],
          [71, 53],
          [62, 71]],

         [[54, 52],
          [55, 48],
          [69, 63],
          [58, 63]],

         [[57, 56],
          [69, 71],
          [68, 62],
          [71, 56]]]]) new_tensor4.shape: torch.Size([3, 3, 4, 2])
new_tensor5: tensor([[[[ 0, 23],
          [ 9, 13],
          [ 2, 17],
          [19, 22]],

         [[33, 37],
          [46, 38],
          [34, 42],
          [40, 32]],

         [[48, 56],
          [49, 67],
          [71, 53],
          [62, 71]]],


        [[[13, 23],
          [ 5, 15],
          [10,  8],
          [ 6, 12]],

         [[39, 30],
          [46, 26],
          [41, 33],
          [37, 28]],

         [[54, 52],
          [55, 48],
          [69, 63],
          [58, 63]]],


        [[[20,  3],
          [ 3, 13],
          [15,  3],
          [22, 22]],

         [[45, 31],
          [46, 37],
          [36, 27],
          [41, 45]],

         [[57, 56],
          [69, 71],
          [68, 62],
          [71, 56]]]]) new_tensor5.shape: torch.Size([3, 3, 4, 2])
new_tensor6: tensor([[[[ 0, 23],
          [33, 37],
          [48, 56]],

         [[ 9, 13],
          [46, 38],
          [49, 67]],

         [[ 2, 17],
          [34, 42],
          [71, 53]],

         [[19, 22],
          [40, 32],
          [62, 71]]],


        [[[13, 23],
          [39, 30],
          [54, 52]],

         [[ 5, 15],
          [46, 26],
          [55, 48]],

         [[10,  8],
          [41, 33],
          [69, 63]],

         [[ 6, 12],
          [37, 28],
          [58, 63]]],


        [[[20,  3],
          [45, 31],
          [57, 56]],

         [[ 3, 13],
          [46, 37],
          [69, 71]],

         [[15,  3],
          [36, 27],
          [68, 62]],

         [[22, 22],
          [41, 45],
          [71, 56]]]]) new_tensor6.shape: torch.Size([3, 4, 3, 2])
new_tensor7: tensor([[[[ 0, 33, 48],
          [23, 37, 56]],

         [[ 9, 46, 49],
          [13, 38, 67]],

         [[ 2, 34, 71],
          [17, 42, 53]],

         [[19, 40, 62],
          [22, 32, 71]]],


        [[[13, 39, 54],
          [23, 30, 52]],

         [[ 5, 46, 55],
          [15, 26, 48]],

         [[10, 41, 69],
          [ 8, 33, 63]],

         [[ 6, 37, 58],
          [12, 28, 63]]],


        [[[20, 45, 57],
          [ 3, 31, 56]],

         [[ 3, 46, 69],
          [13, 37, 71]],

         [[15, 36, 68],
          [ 3, 27, 62]],

         [[22, 41, 71],
          [22, 45, 56]]]]) new_tensor7.shape: torch.Size([3, 4, 2, 3])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星光里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值