14,000장 정도의 이미지를 6가지 클래스로 분류하는 작업
캐글 Kernel에 올라온 자료 중 하나 정리해보기
1. 필요 함수 정의
def get_image()
이미지를 가져와서 라벨에 따라 숫자를 부여하는
ex) 'sea' 라벨을 가지고 있으면 4로 저장
def get_classlabel()
역으로 class_code를 받아 어떤 클래스인지 알려주는 함수
ex) 4라는 숫자가 들어왔을 때 'sea'로 반환
2. Images와 Labels를 배열 형태로 바꾸기
3. Image와 Label Shape 확인해보기
150 x 150 사이즈의 컬러 이미지 14034장으로 확인
4. 이미지 출력해서 확인해보기
임의의 이미지와 해당하는 라벨 출력하기
mountain, forest, glacier 등 다양한 클래스의 이미지 확인
5. 모델 쌓기
Conv - MaxPool - Conv - MaxPool - Flatten - Dense 와 같은 순서로 모델을 쌓는다.
옵티마이저는 아담, 손실함수는 categorical crossentropy
6. 모델 학습하기
fit 함수에 첫번째, 두번째 인자로 이미지와 라벨을 넣어준다.
35번 반복 학습한다.
30%의 validation data를 갖도록 설정한다.
accuracy는 점차 상승하고, loss값은 떨어진다.
val_loss와 val_acc가 loss와 acc에 비해 떨어지는 현상을 overfitting(과적합)이라고 한다.
7. 모델 학습 과정 확인하기
위에서 학습 결과를 trained라는 변수에 저장해두었다.
history 메소드로 학습 과정을 그래프로 그려볼 수 있다.
Reference
https://www.kaggle.com/uzairrj/beg-tut-intel-image-classification-93-76-accur
'대외활동 > DSC CV Study' 카테고리의 다른 글
week5 - Object Detection (0) | 2020.02.07 |
---|---|
week4 - Using Transfer Learning in Keras (0) | 2020.01.27 |
week3 - CNN(Convolutional Neural Network) (0) | 2020.01.27 |
week2 - Optimization 최적화 기법 (0) | 2020.01.13 |
week2 - Backpropagation 오차역전파법 (0) | 2020.01.13 |