tensor两个tensor如何合并成一个tensor?
时间: 2024-12-19 21:23:12 浏览: 7
在PyTorch中,你可以使用`torch.cat()`、`torch.stack()`或`torch.concat()`函数将两个或更多的张量(tensor)沿着某一维度组合成一个新的张量。这里是一些基本的例子:
1. `torch.cat(tensors, dim=0)`: 这个函数会沿着给定的维度`dim`(默认为0,即按行堆叠)横向连接(catenation)输入张量。例如,如果你有两个一维张量,它们可以沿行堆叠。
```python
t1 = torch.tensor([1, 2])
t2 = torch.tensor([3, 4])
combined_t = torch.cat((t1, t2)) # 结果:tensor([1, 2, 3, 4])
```
2. `torch.stack(tensors, dim=0)`: 如果你想沿深度方向(通常是第0维)堆叠张量,可以使用`stack()`,它假设所有输入张量有相同的形状,除了指定的堆叠维度。
```python
t1 = torch.ones(2, 1)
t2 = torch.zeros(2, 1)
combined_t = torch.stack((t1, t2), dim=0) # 结果:tensor([[1., 0.],
# [1., 0.]])
```
3. 对于更复杂的组合,比如二维以上的张量,可以使用`torch.concat()`,这个函数的行为类似于`np.concatenate()`,但支持任意维度的堆叠。
```python
t1 = torch.rand(2, 3)
t2 = torch.rand(2, 3)
combined_t = torch.concat((t1, t2), dim=1) # 沿列(索引1)拼接
```
阅读全文