pytorh---stack详解

stack

import torch as t
a = t.arange(1, 10).reshape(3, 3)
a
b = t.arange(10, 100, 10).reshape(3, 3)
b
c = t.arange(100, 1000, 100).reshape(3, 3)
c

在这里插入图片描述

d = t.stack((a,), dim=0)

在这里插入图片描述
在这里插入图片描述

d = t.stack((a,), dim=1)

在这里插入图片描述

d = t.stack((a,), dim=2)

在这里插入图片描述

d = t.stack((a,b), dim=0)

在这里插入图片描述

d = t.stack((a,b), dim=1)

在这里插入图片描述

d = t.stack((a,b), dim=2)

在这里插入图片描述

d = t.stack((a,b,c), dim=0)

在这里插入图片描述

d = t.stack((a,b,c), dim=1)在这里插入图片描述

d = t.stack((a,b,c), dim=2)

在这里插入图片描述

### PyTorch `torch.stack` 函数详解 #### 功能描述 `torch.stack` 是用于沿新维度连接一系列相同形状的张量序列的功能。输入可以是一个张量列表或元组,输出会增加一个新的维度[^1]。 #### 参数说明 - **tensors (Sequence[Tensor])**: 要堆叠的一系列张量。 - **dim (int)**: 插入的新维度的位置,默认值为 0。 - **out (Tensor, optional)**: 输出目标张量。 #### 返回值 返回一个沿着指定维度拼接后的张量对象。 #### 使用示例 下面展示如何利用 `torch.stack` 来操作不同场景下的数据: ```python import torch # 创建两个相同的二维张量 tensor_a = torch.tensor([[1., 2.], [3., 4.]]) tensor_b = torch.tensor([[5., 6.], [7., 8.]]) # 默认情况下,在第0维上堆叠这两个张量 result_0d_stack = torch.stack((tensor_a, tensor_b)) print(result_0d_stack) # 在第1维上堆叠这些张量 result_1d_stack = torch.stack((tensor_a, tensor_b), dim=1) print(result_1d_stack) # 在最后一位即第2维上堆叠它们 result_last_dim_stack = torch.stack((tensor_a, tensor_b), dim=-1) print(result_last_dim_stack) ``` 上述代码片段展示了三种不同的方式来应用 `torch.stack` 方法,分别是在第一个维度、第二个维度以及最后一个维度上的堆叠效果。 通过这种方式,可以在构建神经网络模型时灵活调整张量结构,尤其是在处理批量数据或者多通道图像的情况下非常有用。此外,当与其他函数如 `torch.unbind` 结合使用时,能够实现更加复杂的张量变换逻辑[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值