우리의 픽셀 벡터는 입력 역할을합니다. 그런 다음 두 개의 숨겨진 512노드 레이어를 통해 숫자를 인식하기에 충분한 모델 복잡성을 알 수 있습니다. 다중 클래스 분류의 경우 10개의 서로 다른 출력 클래스에 대해 조밀하게 연결된(또는 완전히 연결된) 레이어를 추가합니다. 이 네트워크 아키텍처의 경우 Keras 순차 모델을 사용할 수 있습니다. .add() 메서드를 사용하여 레이어를 쌓을 수 있습니다. 일단 당신이 핍, 케라스를 설치하는 것은 파이로 쉽습니다 : 글쎄, 먼저 나는 기능 이름으로 내 혼란을 retifie해야합니다. 나는 마지막 예에서 동일한 모델로 시작했다, 즉, Softmax와 함께 : 비선형 함수. 그리고 predict_proba()로 활성화할 때 확률 ndarray에서 이진 0 또는 1을 얻었습니다. 이 자습서에서는 인기 있는 mnist 데이터 집합을 사용 합니다. 이 데이터 집합은 0-9에서 필기 숫자의 70,000 개의 이미지로 구성됩니다. 우리는 CNN을 사용하여 식별하려고합니다.

Keras는 숫자 벡터를 입력으로 제외합니다. 원하는 방식으로 데이터를 저장한 다음 로드하고 숫자의 숫자 배열로 변환할 수 있습니다. 이 정확도는 매우 좋아 보입니다! 그러나 여기서 중립을 유지하고 올바르고 잘못 분류 된 예제를 평가합시다. 각각 9개의 예제를 살펴보겠습니다. 선택의 최적화에 관해서는 우리는 기본 설정과 아담을 사용합니다. 또한 model.compile()에 전달하기 전에 최적화 프로그램 및 매개 변수를 인스턴스화하고 매개 변수를 설정할 수 있지만 이 예제에서는 기본값이 수행됩니다. NumPy 배열의 모양 변경() 함수를 사용하여 이 변환을 쉽게 수행할 수 있습니다. 또한 픽셀 값의 정밀도를 Keras에서 사용하는 기본 정밀도인 32비트로 강제로 메모리 요구 사항을 줄일 수 있습니다. Keras는 컨볼루션 신경망을 만들기 위한 많은 기능을 제공합니다.

대상 변수를 `핫 인코딩`해야 합니다. 즉, 각 출력 범주에 대해 열이 만들어지고 각 범주에 대해 이진 변수가 입력됩니다. 예를 들어 데이터 집합의 첫 번째 이미지가 5임을 알았습니다. 즉, 배열의 여섯 번째 숫자는 1이고 나머지 배열은 0으로 채워집니다. 새 테스트 예제에서 예측을 어떻게 예측할 수 있습니까? 이 함수가 처음 호출될 때 데이터 집합이 자동으로 다운로드되고 ~/.keras/데이터 집합/mnist.pkl.gz의 홈 디렉토리에 15MB 파일로 저장됩니다. 예제를 실행하면 각 시대에 교육 및 유효성 검사 테스트의 정확도가 인쇄되고 분류 오류율이 인쇄됩니다. 이제 간단한 신경망 모델을 만들 준비가 되었습니다. 우리는 함수에서 모델을 정의합니다. 나중에 예제를 확장하고 더 나은 점수를 얻으려는 경우에 유용합니다. 이 선은 Keras 프레임워크가 백 엔드에 관계없이 각 플랫폼에 대해 동일하게 작동하도록 강제합니다. 입력 데이터를 준비하는 방법을 설명할 때 도움이됩니다. softmax 활성화 함수는 출력 계층에서 출력을 확률과 같은 값으로 변환하고 10개 클래스 중 한 클래스를 모델의 출력 예측으로 선택할 수 있도록 하는 데 사용됩니다.

로그 손실은 손실 함수(Keras의 범주_crossentropy라고 함)로 사용되며 효율적인 ADAM 그라데이션 하강 알고리즘은 가중치를 학습하는 데 사용됩니다. 몇 가지 예를 살펴보겠습니다. MNIST 데이터 집합에는 그레이스케일 이미지만 포함됩니다. 고급 이미지 데이터 집합의 경우 세 가지 색상 채널(RGB)이 있습니다.