首先不要用行列式或在大脑中建立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)
同样可以造一些其他数据进行验证。