初学torch.stack()对dim的个人理解

最近在看这里的内容,对于“维度”、“折叠”这些表述很难理解。在看了几篇讲解之后,目前自己形成了比较直观的理解。记录一下防止未来再产生同样的困惑。

在这里我们定义两个2*3的张量

a=[ [ 0 ,0 ,0 ] , [0 , 0 , 0] ]

b=[ [ 1, 1, 1] , [1 , 1, 1]

其实大于二维也一样,但是二维比较容易以传统矩阵的形式理解。

我们把a b 写成矩阵的形式。

 下面就可以讲维度的问题了,对于a b 他们的第一维,第二维自然就是他们的行和列。

stack函数其实就是把这两个张量连接起来。

我们最容易理解的就是a b内部先不做改变。就是下面的

torch.stack((a,b),dim=0)

其实就是在外部把他们连接起来,类似于把a b 看作两个数,构造一个1*2的矩阵,像这样的形式。

 此时的dim=0 也就是我们扩展出的这个维度“2”的位置是最终张量2*2*3的前面的那个2

那么如果我们设置dim=1,也就是扩展的维度“2”在2*2*3的中间那个2的话,就要对a b 的内部进行改变了。那此时我们实际上是把a b的“行”扩展了,那么如何扩展呢。其实就是把原来的[ 0, 0 , 0]

下面加一行b的[1 ,1 , 1]就可以了

 同理,dim还可以等于2,因为a张量有两个维度。

那dim=2,其实就是对2*3的这个3进行扩展。也就是把每一个单独的0扩展出一个维度变成[ 0 ,1 ]

 代码运行结果如下

其实对于张量来说,我目前理解是越在后面的维度越低。dim=0.等于是直接把两个平行世界放在一起。两个世界(张量)内部不会有什么变化。dim=2的时候就把目光放到最低维上了,也就是只有列向量。只有列向量的时候也就是只能看到单行,元素自然就只有一个0,而不是一整列了

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
torch.stack(dim=-1)是一个PyTorch函数,用于将多个张量在指定维度上堆叠在一起。在这个函数中,参数dim=-1表示在最后一个维度上进行堆叠。具体来说,它将多个张量按照指定维度的顺序在最后一个维度上进行拼接。 举个例子,假设有三个张量a、b、c,它们的维度分别为(3,)、(3,)、(3,)。当我们调用torch.stack([a, b, c], dim=-1)时,它会在最后一个维度上将这三个张量堆叠在一起,得到一个新的张量,维度为(3, 3)。具体堆叠的方式是将a、b、c按照最后一个维度的顺序排列。 总结起来,torch.stack(dim=-1)的作用是将多个张量按照最后一个维度进行堆叠。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [torch.stack([... , ...],dim=?)的使用](https://blog.csdn.net/chord_sz/article/details/105049168)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [pytorch](https://blog.csdn.net/weixin_41179162/article/details/122809503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值