PyTorch函数torch.cat与torch.stac的区别小结
作者:枯木何日可逢春
Pytorch中常用的两个拼接函数torch.cat() 和 torch.stack(),本文主要介绍了这两个函数的用法加区别,具有一定的参考价值,感兴趣的可以了解一下
一、torch.cat与torch.stack的区别
torch.cat
用于在给定的维度上连接多个张量,它将这些张量沿着指定维度堆叠在一起。
torch.stack
用于在新的维度上堆叠多个张量,它会创建一个新的维度,并将这些张量沿着这个新维度堆叠在一起。
二、torch.cat
Example1:
import torch tensor1 = torch.tensor([[1, 2], [3, 4]]) tensor2 = torch.tensor([[5, 6], [7, 8]]) result1 = torch.cat((tensor1, tensor2), dim=0) result2 = torch.cat((tensor1, tensor2), dim=1) print(result1.shape) print(result1) print(result2.shape) print(result2)
torch.Size([4, 2]) tensor([[1, 2], [3, 4], [5, 6], [7, 8]]) torch.Size([2, 4]) tensor([[1, 2, 5, 6], [3, 4, 7, 8]])
三、torch.stack
Example1:
import torch tensor1 = torch.tensor([1, 2, 3]) tensor2 = torch.tensor([4, 5, 6]) result1 = torch.stack((tensor1, tensor2), dim=0) result2 = torch.stack((tensor1, tensor2), dim=1) print(result1.shape) print(result1) print(result2.shape) print(result2)
torch.Size([2, 3]) tensor([[1, 2, 3], [4, 5, 6]]) torch.Size([3, 2]) tensor([[1, 4], [2, 5], [3, 6]])
Example2:
import torch tensor1 = torch.tensor([[1, 2], [3, 4], [5, 6]]) tensor2 = torch.tensor([[7, 8], [9, 10], [11, 12]]) tensor3 = torch.tensor([[13, 14], [15, 16], [17, 18]]) result1 = torch.stack((tensor1, tensor2, tensor3), dim=0) result2 = torch.stack((tensor1, tensor2, tensor3), dim=1) print(result1.shape) print(result1) print(result2.shape) print(result2)
torch.Size([3, 3, 2]) tensor([[[ 1, 2], [ 3, 4], [ 5, 6]], [[ 7, 8], [ 9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]]]) torch.Size([3, 3, 2]) tensor([[[ 1, 2], [ 7, 8], [13, 14]], [[ 3, 4], [ 9, 10], [15, 16]], [[ 5, 6], [11, 12], [17, 18]]])
到此这篇关于PyTorch函数torch.cat与torch.stac的区别小结的文章就介绍到这了,更多相关PyTorch torch.cat与torch.stac 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!