더북(TheBook)

파이썬 프로그램과 텐서플로 사용법에 익숙하지 않으면 코드 16-2를 이해하기 쉽지 않을 것이며, 실제로도 완전히 이해할 필요는 없습니다. 앞에서도 언급하였지만 이 학습 프로그램의 소스 코드에 대한 자세한 설명은 생략하겠습니다. 여기서는 단순히 이 네트워크에서 입력 데이터로 MNIST 데이터셋을 사용하였기 때문에 각각의 필기체 숫자가 28×28 크기 행렬로 구성되어 있고, 각 행렬 원소 값은 0에서 1 사이의 실수 값으로 정규화되어 있다는 점을 기억하기 바랍니다. 또한 출력은 열 개의 노드로 구성되고, 각 노드의 값은 0부터 9까지의 숫자 값에 대한 확률이라는 점도 기억하세요. 그리고 학습된 결과와 네트워크 구성 정보는 mnist_cnn.pb 파일 하나에 저장됩니다.

코드 16-2의 mnist_cnn.py 파이썬 소스 코드는 python.exe 프로그램을 이용하여 실행할 수 있습니다. 명령 프롬프트 콘솔 창에서 mnist_cnn.py 소스 코드가 있는 폴더로 이동한 후, 다음 명령어를 입력하세요.

> python mnist_cnn.py

 

이 명령을 수행하면 mnist_cnn.py 파일에 적힌 파이썬 코드가 실행되면서 필기체 숫자 인식을 위한 학습을 수행합니다. 이 작업은 꽤 오랜 시간이 소요되며, 수십 분의 시간이 소요될 수 있습니다. 앞 명령을 실행하여 모든 학습이 완료된 상태의 콘솔 창 화면을 그림 16-8에 나타냈습니다. 이 작업이 완전히 종료되면 프로그램 실행 폴더에 mnist_cnn.pb 파일이 생성되고, 이 파일에 네트워크 구조와 학습된 모든 가중치 값이 저장됩니다. 다음 절에서는 학습 결과가 저장된 mnist_cnn.pb 파일을 이용하여 OpenCV에서 손글씨 숫자를 인식하는 예제 프로그램 작성 방법에 대해 알아보겠습니다.

▲ 그림 16-8 mnist_cnn.py 필기체 숫자 학습 화면

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.