250x250
250x250
JinSeopKim
Hello World!
JinSeopKim
전체 방문자
오늘
어제
  • 분류 전체보기 (168)
    • Artificial intelligence (14)
      • DeepDiveToAI (3)
      • Pytorch (3)
      • Etc (8)
    • Back-end (19)
      • Spring (10)
      • JPA (9)
    • Language (24)
      • Python (3)
      • Java (11)
      • Swift (10)
    • Math (4)
      • Linear Algebra (4)
    • CodingTest (79)
      • Algolithm (12)
      • Backjoon (25)
      • Programmers (42)
    • Etc (27)
      • Book Review (3)
      • Adsp (6)
      • Life (2)
      • Docker (1)
      • odds and ends (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • GitHub

인기 글

태그

  • swift
  • ios
  • data
  • 알고리즘
  • Python
  • 개발자
  • JAVA8
  • 브루트포스
  • 백준
  • java
  • AI
  • DP
  • 선형대수
  • uArm
  • certificate
  • 문제풀이
  • 머신러닝
  • SpringMVC
  • 구현
  • ADsP
  • BFS
  • 프로그래머스
  • 개발
  • JPA
  • Front-end
  • BOJ
  • 카카오
  • 파이썬
  • 자바
  • 코딩테스트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
JinSeopKim
Artificial intelligence/Pytorch

torchvision.transforms (ToTensor, Normalize, Resize, RandomCrop,Compose)

Artificial intelligence/Pytorch

torchvision.transforms (ToTensor, Normalize, Resize, RandomCrop,Compose)

2022. 9. 2. 16:52
728x90
728x90

transforms 모듈은 이미지를 학습을 위해 적절히 변환할때 사용합니다.

모듈에서 주로 사용하는 것을 소개하겠습니다.

module import

import torchvision.transforms as transforms

 

transforms.ToTensor

transforms.ToTensor()

Pytorch의 배열은 배열구조가 C*H*W(C:채널, H:높이, W:너비)입니다. 

하지만 PIL이미지와 Numpy 배열에서는 H*W*C입니다. 

ToTensor는 이러한 데이터의 구조를 변경해줍니다.

또한 ToTensor는 이미지 픽셀의 밝기정도를 Scale해줍니다. 

밝기정도가 0~255로 표시되었다면 그 값을 0~1로 scale해주게 됩니다.

 

transforms.Nomalize

transforms.Normalize([means],[stds])

각 채널의 평균과 표준편차를 넣어주어 정규화를 시켜줍니다.

채널수에 맞게 평균과 표준편차를 넣어줍니다.(보통 3개 :R,G,B)

transforms.Resize

transforms.Resize(size1)
transforms.Resize(size1, size2)

사진의 사이즈를 변경할 때 사용합니다.

size를 하나만 넣어주면 이미지 가로 세로 중 짧은 부분을 인자에 맞춰주고 큰 부분은 그 맞춰진 것의 비율을 유지하며 변경됩니다.

만약 2개를 넣어주면 입력된 값에 따라 사이즈를 변경합니다.

 

transforms.RandomCrop

transforms.RandomCop(size)

이미지를 임의의 위치에서 잘라줍니다.

Size에 맞추어서 잘라주게 됩니다. (Size * Size로)

Random 이 외에 Center도 있습니다.(이는 중간 위치를 기준으로 잘라줌)

 

transforms.Compose

transform_compose = transforms.Compose([transforms.Rescale(256),
					transforms.RandomCrop(224)])

Compose를 활용하여 여러개의 transform을 묶을 수 있습니다.

이 때 Compose에 입력되는 것은 반드시 List 이어야합니다.

728x90
728x90
저작자표시 비영리 (새창열림)

'Artificial intelligence > Pytorch' 카테고리의 다른 글

Pytorch Dataset과 DataLoader  (0) 2022.09.03
[Pytorch] nn.module을 상속받을 때 super().__init__()을 하는 이유  (0) 2022.08.26
    'Artificial intelligence/Pytorch' 카테고리의 다른 글
    • Pytorch Dataset과 DataLoader
    • [Pytorch] nn.module을 상속받을 때 super().__init__()을 하는 이유
    JinSeopKim
    JinSeopKim
    기록📚

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.