transform, target_transform, transforms의 차이점 및 활용 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
AI
대상자
PyTorch를 활용한 데이터셋 처리에 관심 있는 개발자, 머신러닝 초보자
핵심 요약
transform
은 입력 데이터(예: 이미지)에 적용되는 전처리/후처리 함수를 정의target_transform
은 라벨(target)에만 적용되는 변환 함수를 정의 (예:Resize
)transforms
는transform
과target_transform
을 동시에 적용하는 복합 객체
섹션별 세부 요약
1. transform과 target_transform의 목적
transform
은 데이터의 입력값(예: 이미지)을 조작target_transform
은 라벨(예: 카테고리, 클래스)을 조작- 예시:
target_transform=Resize(size=[100,50])
는 라벨 데이터에 크기 조정 적용
2. transforms의 활용 방법
transforms
는transform
과target_transform
을 포함한 복합 객체- 코드 예시:
transforms.Compose([transform, target_transform])
- 데이터셋 생성 시
transform
과target_transform
을 별도로 설정 가능
3. 실제 적용 예제
OxfordIIITPet
데이터셋에서target_transform
적용 시 라벨 데이터의 크기 조정- 코드:
tgtresize100_50_data = OxfordIIITPet(root="data", target_transform=Resize(size=[100,50]))
transform
은 데이터 로드 시 자동으로 적용되며,target_transform
은 라벨에만 적용
결론
transform
과target_transform
을 별도로 정의하여 데이터와 라벨을 분리 처리transforms.Compose
를 사용해 복잡한 변환 체인 구축- 라벨 변환 시
target_transform
을 반드시 사용하여 데이터 손실 방지