Tensorflow 시작하기 12 (성능 향상-히든 레이어)

사용 버전: Python 3.7.6, Tensorflow 2.1.0


기획: MNIST 데이터 셋을 이용하여, 손글씨 숫자를 맞추는 AI(인공지능) 만들기


이번 시간에는 간단한 방법으로 성능을 향상시키는 방법에 대해서 알아보겠습니다.

아래는 성능 향상 전 그래프입니다.








숨겨진 층(Hidden layer)를 추가하겠습니다.












Dropout이라는 기능도 사용해 줍시다.
학습 데이터 일부분을 누락시켜 학습을 시킵니다.








재생산성을 위해 인자를 고정해 줍시다.


BatchNormalization도 해줍시다.












아무리 해도 성능이 좋아질 기미가 안 보이네요.
아무래도 데이터 전처리가 이상한가 봅니다.


전처리를 10에서 100으로 변경해 줍니다. 아무래도 잡음까지 같이 숫자로 인식되나 봅니다.








seed를 아무리 고정해도 값이 동일하게 안 나오네요....






아무튼 운이 좋게 5 개나 맞는 경우가 생겼습니다.
사실 검정 바탕 7과 9는 맞출 수가 없습니다.
학습 데이터에는 저런 검은색 바탕을 가진 데이터는 없었거든요. 일부러 한 번 넣어봤습니다.


처음의 2와 3은 당연히 맞출 줄 알았습니다.
그런데 생각만큼 잘 안되네요.
이렇게 성능 향상을 시켜보았습니다.

전처리의 중요성을 다시 한번 알게 되었고, hidden layer의 효과 역시 한 번에 알 수 있었습니다.

이제 만든 모델을 저장하는 방법에 대해서 알아보겠습니다.

끝.

코드:
https://github.com/shwoghk14/mnist_tensorflow


카테고리: Tensorflow, BlackSmith

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)