📝원본 파일을 train / test 파일로 각각 분리하기
/tmp 디렉토리 안에 학습을 위한 데이터를 분류하기 위해 cats-v-dogs 디렉토리를 만들고
그 아래 training 과 testing 디렉토리 만든 후 각각 디렉토리 안에 cats와 dogs 디렉토리를 만든다
import os
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
소스 경로에 있는 파일들을 잘 섞은 후 스플릿 사이즈만큼 학습용과 테스트용 파일로 분리한 후
트레이닝 디렉토리와 테스팅 디렉토리에 파일을 저장 시켜 주는 함수 작성 (파일 크기가 0보다 큰 파일만 저장)
def split_data(SOURCE, TRAINING, TESTING, SPLIT_SIZE) :
# 원본 경로의 파일명들을 모두 가져온다
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 : ]
# 학습용과 테스트용으로 각각 해당 폴더로 파일을 카피한다 (파일 크기가 0보다 큰 파일만 저장)
for file_names in training_images :
if os.path.getsize(SOURCE + file_names) > 0 : # /tmp/PetImages/Cat/이미지파일명.jpg
# 원본경로, 카피할경로를 입력
copyfile(SOURCE + file_names, TRAINING + file_names)
for file_names in test_images :
if os.path.getsize(SOURCE + file_names) > 0 :
copyfile(SOURCE + file_names, TESTING + file_names)
경로를 변수에 저장하고 함수를 실행
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 = .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)
'인공지능 > Deep Learning' 카테고리의 다른 글
[Deep Learning] Transfer Learning Fine tuning (0) | 2023.01.02 |
---|---|
[Deep Learning] 사진 분류하는 딥러닝 Transfer Learning으로 해보기 (MobileNetV2 활용) (0) | 2023.01.02 |
[Deep Learning] CNN 개와 고양이 사진을 분류하는 딥러닝 해보기 (0) | 2023.01.02 |
[Deep Learning] CNN TensorFlow 이미지 분류하는 딥러닝 해보기 (0) | 2022.12.30 |
[Deep Learning] 이미지 파일 학습 데이터로 만들기(+이미지 증강) ImageDataGenerator (0) | 2022.12.30 |
댓글