나는 사진의 카테고리를 판정하는
머신러닝 프로그램을 만들 것이다.
그러기 위해서는,
학습용 데이터로 사진데이터와 그 사진의 카테고리 데이터를 이용해서
학습을 시켜야 한다.
80 Million Tiny Images라는 웹사이트에서 6만장의 이미지를 추출해 레이블을 붙인 데이터셋을 제공한다.
CIFAR-10이라는 데이터 셋이다.
아래 URL에서 CIFAR-10 데이터를 살펴볼 수 있다.
//CIFAR-10 dataset
//[URL] https://www.cs.toronto.edu/~kriz/cifar.html
이미지 크기는 32 * 32 픽셀이며, RGB 형식의 컬러이미지이다.
이 데이터셋을 다운받는 방법은 몇 가지가 있는데,
나는 Tensorflow에서 제공하는 keras 모듈을 통해 다운로드 받을 것이다.
keras 자체에 CIFAR-10 데이터를 내려받는 기능이 있다.
Step1. Anaconda Prompt에서 tensorflow 패키지가 설치된
가상환경 tensorflowproject를 activate한다. (이전 포스트 참고)
conda activate tensorflowproject
Step2. python 에디터인 jupyter notebook을 실행한다.
jupyter notebook
jupyter notebook을 실행하면 웹 브라우저가 열리면서 내 컴퓨터에 있는 여러개의 폴더들이 나온다.
여기서 내가 프로젝트를 진행할 폴더를 만든 후 (new > Folder) 새로운 파일을 하나 만든다(new > python3).
Step3. 데이터 다운로드 받는 코드를 작성해보자.
from keras.datasets import cifar10
(X_train, y_train), (X_test, y_test) = cifar10.load_data()
위와 같이 학습용 데이터와 테스트용 데이터로 나눠서 받을 수 있다.
50000개는 학습용 데이터, 10000개는 테스트용 데이터로 분리되어 다운로드 된다.
+ 디버깅 포스팅 추가
Step4. 다운로드 된 데이터를 확인해보기 위해 40개의 이미지를 샘플로 출력해보겠다.
import matplotlib.pyplot as plt
from PIL import Image
plt.figure(figsize=(10,10))
labels = ["airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse", "ship", "truck"]
for i in range(0,40) :
im = Image.fromarray(X_train[i])
plt.subplot(5,8,i+1)
plt.title(labels[y_train[i][0]])
plt.tick_params(labelbottom="off", bottom="off")
plt.tick_params(labelleft="off", left="off")
plt.imshow(im)
plt.show()
이미지 데이터를 바로 출력해보면 다음과 같이 나온다.
한 장이 3차원의 배열로 구성된다는 것을 알 수 있다. (RGB 컬러 이미지 데이터의 특징)
다음은 y_train 데이터이다.
y 데이터는 X 데이터의 카테고리 데이터이다.
예를 들면 1번 사진은 6번 카테고리 사진이고,
50000번째 사진은 1번 카테고리 사진이다.
CIFAR-10 사이트에서 각 숫자가 어떤 카테고리를 의미하는지 찾을 수 있다.
사실 정확한 값이 무엇인지 알기 위해서는 batches.meta라는 파일을 열어서 확인해봐야겠지만,
예시를 살펴봤을 때 위의 그림에서 보이는 순서임을 알 수 있었다.
lables를 배열형식으로 나타냈다.
labels = ["airplane","automobile","bird", "cat", "deer", "dog", "frog", "horse", "ship", "truck"]
1번 사진은 6번 카테고리이므로 frog이고,
50000번째 사진은 1번 카테고리이므로 automobile 사진임을 알 수 있다.
자! 그럼, 성공적으로 데이터를 확보했다.
다음 포스팅에서 이 데이터를 Tensorflow에게 학습시키기 위한 적절한 형태로 가공하는 단계인
데이터 전처리를 진행할 것이다.
'Deep Learning > [Books] 머신러닝, 딥러닝 실전 앱 개발' 카테고리의 다른 글
딥러닝 모델 생성, 컴파일 그리고 학습시키기 (0) | 2020.05.07 |
---|---|
이미지 데이터 전처리하기 (0) | 2020.05.04 |
Anaconda 가상환경 세팅 및 Tensorflow 설치 (16) | 2020.04.27 |
Anaconda 설치하기 (0) | 2020.04.23 |
Prologue. 학습능력 키우기 ! (0) | 2020.04.20 |