pytorch.stack 函数的详解

首先不要用行列式或在大脑中建立3D空间这种思维方式来分析这个函数。

stack 函数返回的结果会新增一个维度。
stack函数指定的dim参数,就是新增维度的(下标)位置。
例如:a=[i][j], b=[i][j],注意这里a中的i、j和b中的i、j必须相同否则会报错。

在stack函数中指定dim=0,则新维度代表第一个下标。
c = stack((a,b), dim=0)
则 c[0][i][j] = a[i][j],
c[1][i][j] = b[i][j]

如果c = stack((a,b), dim=1)
则 c[i][0][j] = a[i][j],
c[i][0][j] = b[i][j]

代码测试一下


```python
In[139]: a = tc.arange(1,10).view(3,3)
In[140]: a
Out[140]: 
tensor([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])
In[141]: b = tc.arange(11,20).view(3,3)
In[142]: b
Out[142]: 
tensor([[11, 12, 13],
        [14, 15, 16],
        [17, 18, 19]])
In[143]: c = tc.stack((a,b),0)
In[154]: c
Out[154]: 
tensor([[[ 1,  2,  3],
         [ 4,  5,  6],
         [ 7,  8,  9]],

        [[11, 12, 13],
         [14, 15, 16],
         [17, 18, 19]]])
In[158]: c[0][1][2]
Out[158]: tensor(6)
In[159]: a[1][2]
Out[159]: tensor(6)
In[160]: c[1][1][2]
Out[160]: tensor(16)
In[161]: b[1][2]
Out[161]: tensor(16)

同样可以造一些其他数据进行验证。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值