AI/DeepLearning

이미지들을 배열 데이터셋으로 만들기

oaho 2023. 3. 31. 11:42
반응형

(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에 각각 배열이 들어갔다.

 

반응형