본문 바로가기
#05.코딩애플/+01.딥러닝

[코딩애플] 개 vs 고양이 데이터 분류하기

by 돌비오 2023. 4. 19.
728x90
데이터set 준비
import os

# 캐글이미지 구글코랩에 다운받기
os.environ['KAGGLE_CONFIG_DIR'] = '/content/'
!kaggle competitions download -c dogs-vs-cats-redux-kernels-edition


# 압축해제
!unzip -q train.zip -d .



import tensorflow as tf
import shutil

# 코랩에서는 리눅스 명령어로 폴더 만들기기
os.mkdir('/content/dogcat')
os.mkdir('/content/dogcat/cat')
os.mkdir('/content/dogcat/dog')

# 특정 파일명 포함된 파일 폴더로 분류하기
for i in os.listdir('/content/train/'):     # os.listdir => 폴더 안 파일명 읽기
  if 'cat' in i:
    shutil.copyfile('/content/train/' + i, '/content/dogcat/cat/'+i)
  if 'dog' in i:
    shutil.copyfile('/content/train/' + i, '/content/dogcat/dog/'+i)



# 이미지를 숫자(픽셀데이터)로 변환하기
# ((이미지 숫자변환데이터), (정답 - 0인지1인지))
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
    './dataset/',
    image_size=(64,64),   # 이미지 사이즈 (픽셀)
    batch_size=64,           # 이미지 2만장 한번에 안하고 64개씩
    subset='training',     
    validation_split=0.2,   # test 데이터 20%로 쪼개기
    seed=1234
)

val_ds = tf.keras.preprocessing.image_dataset_from_directory(
    './dataset/',
    image_size=(64,64),
    batch_size=64,
    subset='validation',
    validation_split=0.2,
    seed=1234
)

print(train_ds)
728x90