카테고리 없음
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))