PyTorch에서 transform, target_transform, transforms의 차이점
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
PyTorch를 사용하는 개발자, 특히 이미지 데이터셋 처리 및 전처리에 관심 있는 사람
핵심 요약
transform
은 데이터(예: 이미지)에 적용되는 변환 함수를 정의하며,target_transform
은 레이블(예: 클래스 번호)에 적용되는 변환 함수를 정의transforms
는transform
과target_transform
을 동시에 지정할 수 있는 편리한 인자로, 데이터셋 클래스(예:OxfordIIITPet
)에 통합 적용- 예시:
transforms=Resize(size=[100, 50])
는 이미지 크기 조정을 수행하며,target_transform
은 레이블 변환(예: 인코딩)에 사용
섹션별 세부 요약
1. `transform`과 `target_transform`의 정의
transform
은 데이터(이미지, 텍스트 등)에 대한 전처리/변환을 정의target_transform
은 레이블(클래스 번호, 텍스트 등)에 대한 전처리/변환을 정의- 예:
transforms=Resize(...)
는 이미지 크기 조정,target_transform
은 레이블 인코딩 가능
2. `transforms` 인자 사용 예시
transforms
인자는transform
과target_transform
을 동시에 지정할 수 있는 편리한 옵션- 예:
OxfordIIITPet(transforms=Resize(...))
는 데이터와 레이블 모두에 변환 적용 transforms
는 데이터셋 클래스(예:Dataset
구현체)의__getitem__
메서드 내부에서 자동 처리
3. `Resize` 적용 예시
Resize(size=[100, 50])
는 이미지의 너비와 높이를 100x50으로 조정tfsresize100_50_func_data[0]
은 첫 번째 샘플의 이미지와 레이블을 변환된 상태로 반환transforms
인자는 데이터셋 로딩 시 일관된 전처리를 보장
결론
transform
은 데이터,target_transform
은 레이블에 적용하며,transforms
는 두 변환을 동시에 지정 가능- 이미지 크기 조정(예:
Resize
)은transforms
인자로 간편하게 적용 가능 - 데이터셋 클래스(예:
OxfordIIITPet
)에서transforms
를 사용하면 전처리 일관성 유지 및 개발 효율성 향상 가능