Torch 사용법 (0) image <-> tensor

김준오·2021년 9월 1일
0

앞으로 인턴업무를 하면서 공부한점들을 정리해두려고 한다.!

Torch 사용법 익히기

튜토리얼 사이트 : https://tutorials.pytorch.kr/beginner/basics/buildmodel_tutorial.html

신경망을 구성하기에 앞서 본격적인 pytorch 사용법을 익혀보려고 한다.
파이토치를 써보는게 처음이라 모든게 새롭지만
일단 문서를 보며 필요한 부분만 따라해봤다.

모듈 임포트

import os
import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets, transforms

쿠다 사용 체크

device = 'cuda' if torch.cuda.is_available() else 'cpu'
print('Using {} device'.format(device))

gpu가 사용이 가능한지에 따라서 print 찍히게 해두었다.

처음 파이참 환경설정 할때 해봤던 부분이라 가볍게 보고 패스한다.

이미지 <-> 텐서 변환

tensor -> Image

원래라면 이미지를 불러와서 텐서로 변환해 [channel, height, width] 형태로 변환시키지만

반대로 임의로 생성해준 [channel, height, widht] 를 이미지로 변환시킬수 있는지 궁금해졌다.


요렇게 임의의 3채널 128 X 128 숫자들을 생성해주고

input_image = torch.rand(3,128,128)
print(input_image.size())

torchvision.transform.ToPILImage() 함수로 텐서를 이미지로 변환 가능하다

tf = transforms.ToPILImage()
img = tf(input_image)
img.show()

3채널 랜덤숫자를 돌려서 변환시켜 출력해보면 요런식으로 나오는걸 확인 할 수 있다.


Image -> tensor

img = PIL.Image.open('./test_DB/test_gallery_dog_noes_images_folds_5/~~~')
tf = transforms.ToTensor()
img_t = tf(img)
print(img_t.size())

이런식으로 이미지 경로를 설정해서 불러오고
torchvision.transform.ToTensor() 함수로 이미지를 텐서로 변환 가능하다.

3채널 540 X 602 텐서로 변환된것을 확인 할 수 있다.

profile
jooooon

0개의 댓글