본문 바로가기

AI/AI 라이브러리

[Pytorch] 변형(Transform)

728x90
반응형

파이토치 한국사용자 모임의 글을 보면서 공부한 내용을 정리한 글입니다.

 

데이터가 항상 머신러닝 알고리즘 핛브에 필요한 최종 처리가 된 형태로 제공되지 않는다.

 

변형을 통해 데이터를 조작하고 학습에 적합하게 만들어야한다.

 

torchvision.transforms 모듈은 주로 사용하는 몇가지 변형을 제공한다.

 

Transforming and augmenting images — Torchvision 0.16 documentation

Shortcuts

pytorch.org

 

테스트에 사용할 데이터인 FashionMNIST 특징(feature)은 PIL Image 형식이며, 정답(label)정수(integer)이다.

학습을 하려면 정규화(normalize)된 텐서 형태의 특징(feature)과 원-핫(one-hot)으로 부호화(encode)된 텐서 형태의 정답(label)이 필요하다. 이러한 변형(transformation)을 하기 위해 ToTensor  Lambda 를 사용합니다.

 

ToTensor()

 

Transforming and augmenting images — Torchvision 0.16 documentation

Shortcuts

pytorch.org

PIL Image나 NumPy ndarray  FloatTensor 로 변환하고, 이미지의 픽셀의 크기(intensity) 값을 [0., 1.] 범위로 비례하여 조정(scale)한다.

 

Lambda 변형(Transform)

Lambda 변형은 사용자 정의 람다(lambda) 함수를 적용한다.

여기에서는 정수를 원-핫으로 부호화된 텐서로 바꾸는 함수를 정의한다.

이 함수는 먼저 (데이터셋 정답의 개수인) 크기 10짜리 영 텐서(zero tensor)를 만들고,scatter_를 호출하여 주어진 정답 y에 해당하는 인덱스에 value=1을 할당한다.

target_transform = Lambda(lambda y: torch.zeros(
    10, dtype=torch.float).scatter_(dim=0, index=torch.tensor(y), value=1))

 

 

 

3. Transform.ipynb

Colaboratory notebook

colab.research.google.com

 

728x90
반응형

'AI > AI 라이브러리' 카테고리의 다른 글

[Pytorch] 모델 매개변수 최적화하기  (0) 2023.12.28
[Pytorch] Autograd  (0) 2023.12.28
[Pytorch] 신경망 모델 구성하기  (0) 2023.12.27
[Pytorch] 데이터셋  (0) 2023.12.27
[Pytorch] 파이토치 시작하기  (0) 2023.12.27