왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • yolov8
  • UnboundLocalError
  • maskimage
  • 비지도학습
  • labelme UnocodeDecodeError
  • alibi-detection
  • 기상탐사
  • PIL
  • labelme
  • TensorFlow
  • numpy
  • 의료이미징
  • pip install labelme
  • PYTHON
  • 컴퓨터비전
  • ComputerVision
  • 영상처리역사
  • 영상처리
  • matplotlib
  • ckpt_file
  • encoding='utf-8'
  • get_long_description
  • tune()
  • 딥러닝
  • OpenCV
  • 영상기술
  • imageprocessing
  • unsupervised
  • pytorch
  • alibidetect

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

인공지능/딥러닝

딥러닝 : 원본 파일을 Train / Test 파일로 분리하여 사용하는 방법과 디렉토리를 만드는 방법

2022. 12. 30. 17:33
728x90
import os
import zipfile
import random
import tensorflow as tf
from tensorflow.keras.optimizers import RMSprop
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from shutil import copyfile

필요 라이브러리 import

 

# /tmp 경로에 압축파일을 다운로드 받고 압축 푼다.

!wget --no-check-certificate \
    "https://block-edu-test.s3.ap-northeast-2.amazonaws.com/kagglecatsanddogs_5340.zip" \
    -O "/tmp/cats-and-dogs.zip"

local_zip = '/tmp/cats-and-dogs.zip'
zip_ref = zipfile.ZipFile(local_zip, 'r')
zip_ref.extractall('/tmp')
zip_ref.close()
print(len(os.listdir('/tmp/PetImages/Cat/')))
print(len(os.listdir('/tmp/PetImages/Dog/')))

# Expected Output:
# 12501
# 12501

python 리눅스 환경에서 디렉토리를 만드는 방법

# /tmp 디렉토리 안에다, 학습을 위한 데이터를 분류하기 위해
# cats-v-dogs 디렉토리를 만들고, 
# 그 아래 training 과 testing 디렉토리 만든 후
# 각각 디렉토리 안에  cats 와 dogs 디렉토리를 만든다.
try:
    #YOUR CODE GOES HERE
    os.mkdir('/tmp/cats-v-dogs')

    os.mkdir('/tmp/cats-v-dogs/training')
    os.mkdir('/tmp/cats-v-dogs/testing')

    os.mkdir('/tmp/cats-v-dogs/training/cats')
    os.mkdir('/tmp/cats-v-dogs/training/dogs')

    os.mkdir('/tmp/cats-v-dogs/testing/cats')
    os.mkdir('/tmp/cats-v-dogs/testing/dogs')
    
except OSError:
    pass

원본 파일을 Training / Test파일로 분리하여 사용하는 방법

##  split_data 라는 파이썬 함수를 만든다.

# SOURCE directory 
# TRAINING directory 
# TESTING directory 
# SPLIT SIZE 

# 소스 경로에 있는 파일들을 잘 섞은 후
# 스플릿 사이즈만큼 학습용과 테스트용 파일로 분리한 후
# 트레이닝 디렉토리와 테스팅 디렉토리에 파일을 저장 시켜 주는 함수 작성 (파일 크기가 0보다 큰 파일만 저장)

def split_data(SOURCE, TRAINING, TESTING, SPLIT_SIZE):
# YOUR CODE STARTS HERE

  # 원본 경로의 파일명들을 모두 가져온다.
  file_names = os.listdir( SOURCE  )

  # 가져온 파일명을 잘 섞어준다.
  shuffled_files = random.sample( file_names  , len(file_names) )

  # 학습용과 테스트용 분리를 위해 인덱스를 구한다.
  index = int(  len(shuffled_files)  *   SPLIT_SIZE )

  # 섞인 파일명 리스트에서, 해당 인덱스만큼 잘라서, 학습용과 테스트용 파일명 분리
  training_images = shuffled_files[0 : index]
  test_images = shuffled_files[ index :  ]

  # 학습용과 테스트용으로 각각 해당 폴더로, 파일을 카피한다.
  for file_name in training_images :
    if os.path.getsize( SOURCE + file_name  ) > 0 :
      copyfile( SOURCE + file_name  , TRAINING + file_name )

  for file_name in test_images : 
    if os.path.getsize( SOURCE + file_name  ) > 0 :
      copyfile( SOURCE + file_name, TESTING + file_name ) 

# YOUR CODE ENDS HERE


CAT_SOURCE_DIR = "/tmp/PetImages/Cat/"
TRAINING_CATS_DIR = "/tmp/cats-v-dogs/training/cats/"
TESTING_CATS_DIR = "/tmp/cats-v-dogs/testing/cats/"
DOG_SOURCE_DIR = "/tmp/PetImages/Dog/"
TRAINING_DOGS_DIR = "/tmp/cats-v-dogs/training/dogs/"
TESTING_DOGS_DIR = "/tmp/cats-v-dogs/testing/dogs/"

split_size = 0.9
split_data(CAT_SOURCE_DIR, TRAINING_CATS_DIR, TESTING_CATS_DIR, split_size)
split_data(DOG_SOURCE_DIR, TRAINING_DOGS_DIR, TESTING_DOGS_DIR, split_size)

 

'인공지능 > 딥러닝' 카테고리의 다른 글

딥러닝 : Fine tuning 파인튜닝  (0) 2023.01.02
딥 러닝 : Transfer Learning ( MobileNetV2 )  (0) 2023.01.02
딥러닝 : 이미지 데이터 증강 / Image Augmentation  (0) 2022.12.30
딥러닝 : CNN 말과 사람 분류하기 / CNN모델링 방법 , 이미지파일을 학습 데이터로 만드는 방법(ImageDataGenerator)  (0) 2022.12.30
CNN의 convolution,Stride,Padding,Pooling / feature map의 사이즈를 구하는 공식  (0) 2022.12.29
    '인공지능/딥러닝' 카테고리의 다른 글
    • 딥러닝 : Fine tuning 파인튜닝
    • 딥 러닝 : Transfer Learning ( MobileNetV2 )
    • 딥러닝 : 이미지 데이터 증강 / Image Augmentation
    • 딥러닝 : CNN 말과 사람 분류하기 / CNN모델링 방법 , 이미지파일을 학습 데이터로 만드는 방법(ImageDataGenerator)
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바