import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from PIL import Image
# os : 파일 및 폴더 처리에 관련된 라이브러리
import os
# 각 폴더별 경로 지정
duck_dir = '오리/'
raccoon_dir = '너구리/'
platypus_dir = '오리너구리/'
# os.listdir : 해당 경로에 있는 파일명들을 리스트로 순서대로 저장
duck_fnames = os.listdir(duck_dir)
raccoon_fnames = os.listdir(Raccoon_dir)
platypus_fnames = os.listdir(platypus_dir)
# os.path.join : 폴더 경로와 파일명을 결합
test_path = os.path.join(duck_dir, duck_fnames[50])
# 이미지를 로딩하는 함수(데이터로드, 파일 오픈 및 사이즈 조정, 배열로 변경)
def load_images(folder_path, file_names, img_size_shape=(224,224)) :
images = []
for i in file_names :
# 폴더 경로 + 파일명 합치기
path = os.path.join(folder_path, i)
# 파일 오픈 및 크기조정
img = Image.open(path).resize(img_size_shape).convert('RGB')
# numpy 배열로 변경후에 리스트에 저장
images.append(np.array(img))
# 리스트 자체도 numpy 배열로 변경해서 반환
return np.array(images)
train_duck = load_images(duck_dir, duck_fnames)
train_raccoon = load_images(raccoon_dir, raccoon_fnames)
train_platypus = load_images(platypus_dir, platypus_fnames)
print(train_duck.shape)
print(train_raccoon.shape)
print(train_platypus.shape)
(400, 224, 224, 3)
(400, 224, 224, 3)
(400, 224, 224, 3)
plt.imshow(train_raccoon[1]);
X = np.concatenate([train_duck, train_raccoon, train_platypus])
y = np.array ([0]*400 + [1]*400 + [2]*400)
print(X.shape)
print(y.shape)
(1200, 224, 224, 3)
(1200,)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.2,
random_state=11
)
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)
(960, 224, 224, 3)
(960,)
(240, 224, 224, 3)
(240,)
NPZ파일로 변환(Numpy Zip)
- 압축된 배열 파일로 데이터를 변환
np.savez_compressed('animals.npz', # 저장될 폴더 경로 및 파일명 설정
X_train = X_train,
X_test = X_test,
y_train = y_train,
y_test = y_test
)
'딥러닝' 카테고리의 다른 글
[딥러닝] CNN(Convolutional Neural Network) (0) | 2022.07.22 |
---|---|
[딥러닝] 다중분류 신경망모델 만들기(3가지 동물 분류) (0) | 2022.07.22 |
[딥러닝] 구글 이미지 수집(with selenium) (0) | 2022.07.22 |
[딥러닝] 활성화 함수, 최적화 함수(패션데이터) (0) | 2022.07.21 |
[딥러닝] 활성화 함수, 최적화 함수 (0) | 2022.07.21 |