import os
import time
import copy
import glob
import cv2
import shutil
import torch
import torchvision
import torchvision.transforms as transforms # 이미지 데이터를 변환하여 모델의 입력으로 사용할 수 있게 변환해줌.
import torchvision.models as models
import torch.nn as nn
import torch.optim as optim
import matplotlib.pyplot as plt
from google.colab import files # 데이터 불러오기
file_uploaded=files.upload() # 데이터 불러오기: chap05/data/catndog.zip 파일 선택
→ 코랩 환경이므로 위와 같은 코드를 이용해 데이터를 불러옴
→ catanddog.zip 파일을 불러옴.
!unzip catanddog.zip -d catanddog # 압축 해제
data_path = 'catanddog/train/'
transform = transforms.Compose( # 데이터 전처리를 위해 변환을 할 때 사용됨.
[
transforms.Resize([256,256]), # 이미지 크기를 256 x 256 으로 조정
transforms.RandomResizedCrop(224), # 이미지를 랜덤한 크기로 자름
transforms.RandomHorizontalFlip(), # 이미즈를 랜덤하게 수평으로 뒤집음
transforms.ToTensor(), # 이미지 데이터를 텐서로 변환함
]
)
train_dataset = torchvision.datasets.ImageFolder( # ImageFolder 데이터 셋 생성
data_path,
transform=transform # 이미지 데이터에 대한 전처리
)
train_loader = torch.utils.data.DataLoader(
# 데이터셋으로부터 배치 단위로 데이터를 로드하는 데이터로더 생성
train_dataset,
batch_size = 32,
num_workers=8,
shuffle=True
)
print(len(train_dataset)) # 데이터 셋에 있는 이미지의 총 개수를 출력함.