AI/Deep Learning

[Tensorflow2.x / Keras] 손글씨 숫자 분류를 위한 신경망 만들기

Jeong Jeon
반응형

Keras란?

  • 파이썬 딥러닝 라이브러리
  • 컨볼루션 신경망, 순환 신경망, 그리고 둘의 조합까지 모두 지원
  • CPU와 GPU 둘다 매끄럽게 실행

측정항목

  • 모델의 성능을 평가하는데 사용되는 측정항목함수는 모델이 컴파일 될때 metrics 매개변수를 통해 공급됨
  • 측정 항목을 평가한 결과는 모델을 학습시키는데 사용되지 않는다.
  • 어느 손실함수나 측정항목 함수로 사용가능

 

MNIST Dataset을 이용하여 데이터를 가져와서 사용하였다.

손글씨 이미지 여러개와 숫자 여러개를 조합해서 훈련시키는 방식으로,

훈련을 시키고난뒤에 일치하는 숫자를 출력하는 형식

 

결과 : 이 데이터셋에서 5번의 훈련으로 약 98% 정도의 정확도를 만들어냈다.

 

어려우니

코드를 자세하게 설명해놔야겠다.

 

1).  데이터 범위설정

  • 손글씨 숫자 이미지 데이터는 0 - 255 사이의 값을 가진다.
    모델 훈련에 사용하기 전에 0 사이 범위를 갖도록 변경한다!
x_train, x_test = x_train/255.0, x_test/255.0

 

2). 레이어를 쌓아 모델 생성

  • 레이어를 쌓아서 keras.models.Sequential 모델을 생성한다.
model = tf.keras.models.Sequential([])

3). 훈련

  • 훈련 데이터 셋을 사용 x_train , y_train
  • epochs를 5로 설정하여 모델을 5번 반복 훈련한다.
model.fit(x_train, y_train, epochs = 5)

결과를 보게되면, 훈련을 진행할수록 loss가 줄어들고 정확도는 상승하는것을 확인 할 수 있다.

 

 

 

반응형