transform, target_transform, transforms의 차이점 및 활용 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

AI

대상자

PyTorch를 활용한 데이터셋 처리에 관심 있는 개발자, 머신러닝 초보자

핵심 요약

  • transform은 입력 데이터(예: 이미지)에 적용되는 전처리/후처리 함수를 정의
  • target_transform은 라벨(target)에만 적용되는 변환 함수를 정의 (예: Resize)
  • transformstransformtarget_transform을 동시에 적용하는 복합 객체

섹션별 세부 요약

1. transform과 target_transform의 목적

  • transform은 데이터의 입력값(예: 이미지)을 조작
  • target_transform은 라벨(예: 카테고리, 클래스)을 조작
  • 예시: target_transform=Resize(size=[100,50])는 라벨 데이터에 크기 조정 적용

2. transforms의 활용 방법

  • transformstransformtarget_transform을 포함한 복합 객체
  • 코드 예시: transforms.Compose([transform, target_transform])
  • 데이터셋 생성 시 transformtarget_transform을 별도로 설정 가능

3. 실제 적용 예제

  • OxfordIIITPet 데이터셋에서 target_transform 적용 시 라벨 데이터의 크기 조정
  • 코드: tgtresize100_50_data = OxfordIIITPet(root="data", target_transform=Resize(size=[100,50]))
  • transform은 데이터 로드 시 자동으로 적용되며, target_transform은 라벨에만 적용

결론

  • transformtarget_transform을 별도로 정의하여 데이터와 라벨을 분리 처리
  • transforms.Compose를 사용해 복잡한 변환 체인 구축
  • 라벨 변환 시 target_transform을 반드시 사용하여 데이터 손실 방지