Python

이미지 파일 (JPG, PNG..)을 학습을 위해 넘파이 데이터로 만드는 방법(ImageDataGenerator)

K2ODING 2021. 12. 2. 17:41
728x90
  • 파일로 되어있는 이미지를, 학습을 위해서 넘파이로 바꿔줘야 한다.
  • 실제로 복잡한 작업을 해야 하는것을, 텐서플로우에서 쉽게 처리 할 수 있게 라이브러리를 제공한다.
  • ImageDataGenerator
from tensorflow.keras.preprocessing.image import ImageDataGenerator

# 파일로 되어있는 이미지를 피처 스케일링을 한다. => 255.0으로 나누는것

train_datagen = ImageDataGenerator(rescale= 1/255.0)
validation_datagen = ImageDataGenerator(rescale= 1/255.0)
  • 파일이 들어있는 디렉토리를 알려주고, 이미지 사이즈 정보도 알려주고, 불류할 정보도 알려준다.
  • target_size 파라미터는, 우리가 마음대로 정해줄 수 있다. 단, 모델의 input_shape와 동일해야 한다.
  • class_mode는, 2개 분류는 binnary, 3개 이상은 categorical 로 설정
train_generator = train_datagen.flow_from_directory('/tmp/horse-or-human', target_size=(300,300), class_mode='binnary'
# 출력 Found 1027 images belonging to 2 classes.

validation_generator = validation_datagen.flow_from_directory('/tmp/validation-horse-or-human', target_size=(300,300), class_mode='binnary'
# 출력 Found 256 images belonging to 2 classes.
  • train_genrator 에는 X_train, y_train 이 들어있게 된다.
  • X_train의 값은, 폴더의 이름으로 설정된다.
  • 따라서 폴어의 이름을 알파벳순으로 정렬한 후, 0부터 차례로 숫자를 매긴다.