예제에서 사용할 데이터는 개와 고양이에 대한 이미지2입니다. 이미지는 총 2만 5000여 개로 구성되어 있지만, 성능 관계로 일부 이미지만 사용합니다. 예제를 실행하는 환경이 충분한 성능을 제공할 수 있다면 내려받은 전체 이미지를 사용해도 좋습니다.
이미지가 위치한 폴더에서 모든 이미지를 메모리로 로딩하고 특성 추출을 처리합니다. 특성 추출을 위해 모델의 입력층 크기(224×224)와 일치하도록 이미지 크기를 224×224로 조정합니다.
코드 11-3 데이터셋 준비
input_dir = '..\chap11\data\pets'
glob_dir = input_dir + '/*.jpg'
images = [cv2.resize(cv2.imread(file), (224,224)) for file in glob.glob(glob_dir)]
paths = [file for file in glob.glob(glob_dir)]
images = np.array(np.float32(images).reshape(len(images),-1)/255)
다음 그림은 ‘chap11/data/pets’에 위치한 이미지들입니다.
▲ 그림 11-7 개와 고양이 예제 이미지
2 이 데이터셋은 캐글에서 제공하는 강아지와 고양이 이미지입니다. 데이터셋은 고양이 1만 2501개, 개 1만 2501개로 구성되어 있습니다(https://www.kaggle.com/c/dogs-vs-cats). 여기에 필자가 일부 이미지들을 추가해서 구성했습니다.