반응형
(1, 280, 280, 3)의 사이즈를 가지는 이미지를 쌓아 올리는 작업을 할거다.
우선, 함수들에 대해 알아보자.
▪ np.expand_dims
: 차원을 확장해준다.
import numpy as np
# 2차원 배열 생성
arr = np.zeros((280, 280))
# 3차원으로 변경
arr = np.expand_dims(arr, axis=-1) # 마지막 차원에 1차원 추가
arr = np.repeat(arr, 3, axis=-1) # 마지막 차원을 3차원으로 확장
print(arr.shape) # (280, 280, 3)
비슷한 함수 : np.broadcast_to
np.broadcast_to(img_arr, (280, 280, 3))
▪ np.add
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.add(a, b)
print(c) # [5, 7, 9]
Trainset, Validset, Testset (n, 280, 280, 3) 만들기
(1, 280, 280, 3)의 배열을 만든 뒤, 데이터 개수만큼 쌓는다.
def load(img, path):
zero = np.zeros((1,280,280,3))
a = 0
for i in os.listdir(path):
img = tf.keras.utils.load_img(path+i, target_size=(280, 280))
img_arr = keras.utils.img_to_array(img)
img_tensor = np.expand_dims(img_arr, axis=0)
if a == 0:
arr = np.add(zero, img_tensor)
else :
arr = np.vstack((arr,img_tensor))
a += 1
return arr
Trainset = load("Trainset","/content/drive/MyDrive/Datasets/copy_images/trainset/" )
Validset = load("Validset", "/content/drive/MyDrive/Datasets/copy_images/validset/")
Testset = load("Testset", "/content/drive/MyDrive/Datasets/copy_images/testset/")
Trainset, Validset, Testset에 각각 배열이 들어갔다.
반응형
'AI > DeepLearning' 카테고리의 다른 글
자연어 처리를 위한 텍스트 전처리 - 2. 원-핫 인코딩 (0) | 2023.04.02 |
---|---|
자연어 처리를 위한 텍스트 전처리 - 1. 텍스트의 토큰화 (0) | 2023.04.01 |
CNN을 이용한 MNIST 데이터셋 모델링 과정 (0) | 2023.03.17 |
Conv2D, max pooling, Dropout, Flatten (0) | 2023.03.17 |
CNN 개념 (0) | 2023.03.14 |