카테고리 없음

JPG나 PNG와 같은 이미지 파일을 학습 데이터로 만드는 방법

zzuvely 2022. 6. 15. 11:49

학습시킬 데이터는 numpy array 이므로 png / jpg 파일을 바꿔주어야한다.

텐서플로우에서 이미지 파일을 넘파이로 바꿔주는 라이브러리를 제공한다.

 

from tensorflow.keras.preprocessing.image import ImageDataGenerator

# 이미지 파일의 범위는 0~255이므로 255로 나누어 0과 1사이의 범위로 만들어준다.
train_datagen = ImageDataGenerator(rescale=1/255.0)
validation_datagen = ImageDataGenerator(rescale=1/255.0)

 

변수로 만들어 주고, 이미지가 들어있는 디렉토리의 정보, 이미지 사이즈 정보, 분류할 갯수 정보를 알려줘야한다.

 

# target_size와 앞에서 모델을 생성할 때 설정한 input_shape은 가로, 세로가 같아야 한다.
# train_generator는 넘파이 어레이와 해당 이미지의 정답지도 가지고 있는 변수다.

train_generator = train_datagen.flow_from_directory('/tmp/horse-or-human', target_size=(300, 300), class_mode='binary')
validation_generator = validation_datagen.flow_from_directory('/tmp/validation-horse-or-human', target_size=(300, 300), class_mode='binary')

 

학습이 가능한 넘파이 어레이로 바꾼 후, 모델을 학습한다.

epoch_history = model.fit(train_generator, epochs=20, validation_data=(validation_generator))