Data Transform

이상민·2023년 3월 15일
0
post-thumbnail
post-custom-banner

data transform이란 말그대로 데이터를 변형시키는 것이다. 딥러닝 학습을 위해서는 고정된 입력값이 보장 되어야한다. 하지만 수집한 데이터의 크기가 동일하지 않을 수도 있기 때문에 transform을 해준다.

torchvision transform함수

  • torchvision.transforms.Resize(size)(image): 이미지의 사이즈를 변환해주는 함수
  • torchvision.transforms.RandomCrop((size,size))(image): 지정된 이미지를 임의의 위치에서 자른다.
  • torchvision.transforms.CenterCrop(size)(image): 중간부분을 가로,세로를 size만큼 자른다.
  • torchvision.transforms.RandomRotation(degree)(image): 주어진 이미지를 임의의 각도만큼 회전시킨다
  • torchvision.transforms.RandomVerticalFlip(p)(image): 입력된 확률로 이미지를 위아래로 뒤집는다
  • torchvision.transforms.ToTensor()(image): 이미지를 tensor로 변환

이외에도 여러가지 transforms 함수가 있다.

예시


def get_transforms_img(im):
    im = transforms.Resize((224,224))(im)
    flip = transforms.RandomVerticalFlip(p = 1)
    im = flip(im)
    im = transforms.CenterCrop(150)(im) 
    return im
get_transforms_img(im)

Compose

여러 이미지 변환을 할때 위 예시처럼 함수를 만들어서 할필요 없이 torchvision에서 제공하는 Compose라는 함수를 통해 여러 transforms들을 하나로 묶어서 처리할 수 있다.

trans = transforms.Compose([transforms.Resize((224,224)),#사이즈를 가로,세로 224X224로 변환
                    transforms.RandomVerticalFlip(0.5),#50%의 확률로 사진 뒤집기
                    transforms.CenterCrop(150)])#중앙을 가로,세로 150으로 자르기
trans(image)

profile
잘하자
post-custom-banner

0개의 댓글