아래부터는 한 번씩 따라서 직접 코딩해 보시고, 실행 결과를 확인해 보시길 권합니다.
3.1 Tensor Indexing
# 1차원 dimension indexing
x = torch.arange(1, 10)
print(x)
print(x[3])
print(x[-1])
# 1차원 dimension boolean indexing
print(x>5)
print(x[x>5])
# 1차원 dimension list indexing
print(x[[3,5,7]])
# 1차원 dimension indexing된 element로 새로운 tensor 구성
print(x[torch.tensor([1,3,4])])
# 2차원 dimension indexing
x = torch.arange(1,10).reshape(3, 3)
print(x)
# 1번 행 indexing
print(x[1])
# 1번 열 indexing
print(x[:, 1])
# 2행 1열 indexing
print(x[2][1])
print(x[2,1])
# 2차원 dimension boolean indexing
print(x>5)
print(x[x>5])
# 2차원 dimension list indexing
print(x[[2, 2, 0], [1, 0, 2]])
# 2차원 dimension indexing된 element로 새로운 tensor 구성
print(x[torch.tensor([2, 1, 1])])
# 3차원 dimension indexing
x = torch.arange(27).reshape(3,3,3)
print(x)
print(x[1, 2, 2])
print(x[1][2][2])
# 3차원 dimension boolean indexing
print(x>10)
print(x[x>10])
# 3차원 dimension list indexing
print(x[[1, 0, 2], [0, 2, 2]])
print(x[[1, 0, 2], [0, 2, 2], [0, 2, 1]])
# 3차원 dimension indexing된 element로 새로운 tensor 구성
print(x[torch.tensor([2, 1, 0])])
3.2 Tensor Slicing
# 1차원 dimension slicing
x = torch.arange(10)
print(x)
print(x[3:6])
print(x[3:])
print(x[:7])
print(x[:])
# 2차원 dimension slicing
x = torch.arange(1, 10).reshape(3, 3)
print(x)
print(x[1:])
print(x[:])
print(x[1, 0:2])
print(x[:,2])
# 3차원 dimension slicing
x = torch.arange(27).reshape(3, 3, 3)
print(x)
print(x[1:])
print(x[0, :, 2])
print(x[1, 0, :])
'코드 정리 > Pytorch 정리' 카테고리의 다른 글
6. PyTorch Model 구성 (0) | 2025.01.27 |
---|---|
5. PyTorch Dataset / DataLoader (0) | 2025.01.24 |
4. PyTorch에서 제공하는 여러 함수 (1) | 2025.01.23 |
2. Tensor 연산 (0) | 2025.01.21 |
1. Tensor 생성 (1) | 2025.01.20 |