본문 바로가기

AI/TensorFlow 학습

11. TensorFlow 2.x - CNN CIFAR 10 예제

참고: https://youtu.be/qWXHuSP2wNw?si=5SELKiCsK_6GXnKY

 

MNIST에서 흑백 숫자 손글씨 이미지, fashion MNIST에서는 흑백 의복 이미지가 학습데이터였다면,이번에는 CIFAR 10이라는 컬러로 된 이미지들로 학습시키고 추론해보고자 한다.각 이미지는 32x32x3(RGB)로,  꽤 작은 60000개의 이미지를 이용한다.

 

모델은 지난 글에서 소개한 모델 그대로를 사용한다.

모델을 그대로 사용하므로 테스트 이미지를 받아오는 부분과, 그 형태만 바꿔주면 될 것이다.

 

입력 이미지가 32x32x3의 형태이므로 입력 형태를 바꿔주는 것 외에는 달라지지 않았다.

 

손실함수와 최적화 방법을 정한 후 학습시켜보자.

초기 정확도는 30.6%이고, 학습의 끝에서는 81.0%가 되었다. 

상당한 진전이라고 생각한다.

 

 

훈련때는 계속 정확도가 높아졌으나, 검증 결과를 보면 overfitting이 발생한다는 것을 알 수 있다.

 

손실 값도 같은 경향을 보인다. 이 overfitting을 어떻게 하면 줄일 수 있을까?

 

 

컨볼루션 레이어를 더 쌓을 수록, 더 많은 학습 데이터를 가질 수록, 명확한 이미지일 수록 성능의 개선이 있다고 한다.

다음 글에서 CNN의 overfitting을 줄이고 정확도를 올릴수 있는 방법을 살펴보자.