티스토리 뷰
차원 증가
unsqueeze() 메소드 사용
unsqueeze() 메소드는 지정된 위치에 새로운 차원을 추가합니다. 이 메소드는 차원을 추가할 위치의 인덱스를 인자로 받습니다. PyTorch에서 차원의 인덱스는 0부터 시작합니다. 따라서, 배치 차원을 가장 앞에 추가하려면 인덱스 0의 위치에 차원을 추가하면 됩니다.
import torch
# [3, 256, 256] 차원을 가지는 텐서 생성
image_tensor = torch.randn(3, 256, 256)
# 배치 차원을 추가하여 [1, 3, 256, 256]으로 변경
image_tensor_unsqueezed = image_tensor.unsqueeze(0)
print(image_tensor_unsqueezed.shape) # 결과: torch.Size([1, 3, 256, 256])
view() 메소드 사용
view() 메소드를 사용하여 텐서의 차원을 재구성할 수도 있습니다. 이 경우, 원하는 모든 차원을 명시적으로 지정해야 합니다. 단, 이 함수는 차원을 변경하기 위해 연속적인 텐서 배열로 만들어줘야 하므로, tensor.contiguous().view(~)를 사용해야 할 수도 있다. 혹은 아래처럼 reshape() 메소드를 사용해도 된다.
image_tensor_viewed = image_tensor.view(1, 3, 256, 256)
reshape() 메소드 사용
reshape() 메소드는 view()와 유사하게 텐서의 차원을 변경합니다. 다만, 내부적으로 메모리를 새롭게 할당할 수 있어 더 유연합니다.
image_tensor_reshaped = image_tensor.reshape(1, 3, 256, 256)
'전공 공부 > 데이터 분석' 카테고리의 다른 글
이미지 시각화 함수 (0) | 2024.02.03 |
---|---|
유사한 이미지 삭제하기 (0) | 2024.02.02 |
다양한 파일을 읽어와 이미지 분류하기 (0) | 2024.02.02 |