Introduction to Deep Learning with PyTorch
Chapter 3: PyTorch Tensors
Concatenating tensors
torch.cat
concatenates tensors along the specified dimension.
Concatenating tensors along dimension 0
import torch
t1 = torch.randn(size=(1, 4))
t2 = torch.randn(size=(2, 4))
concatenation = torch.cat(tensors=(t1, t2), dim=0)
print(concatenation)
print(concatenation.size())
produces this kind of output:
tensor([[-1.2413, 0.1362, 0.9370, 2.1812],
[ 0.5601, 0.0252, 0.4164, -0.6447],
[-0.4758, -0.2737, -0.0152, 1.5531]])
torch.Size([3, 4])
Note: the code above runs as all tensors have the same size on dimensions other than 0.
If t1
was of size (1, 3)
instead of (1, 4)
, the code will not run.
Concatenating tensors along dimension 1
import torch
t1 = torch.randn(size=(3, 1))
t2 = torch.randn(size=(3, 5))
concatenation = torch.cat(tensors=(t1, t2), dim=1)
print(concatenation)
print(concatenation.size())
gives an output similar to this:
tensor([[-0.1497, 0.0853, -0.6608, -1.1509, 0.3870, 0.2287],
[ 0.3432, 0.6032, 0.0454, -0.3627, -0.6101, 1.1735],
[ 0.3677, -1.5225, -0.0834, 0.6458, 0.9340, 0.0303]])
torch.Size([3, 6])