MNIST 분류를 위한 심층 신경망
이 섹션에서 얻은 모든 지식을 적용하여 심층 신경망을 작성합니다. 선택한 문제는 딥 러닝의 "Hello World"라고 합니다. 왜냐하면 대부분의 학생들이 처음 보는 딥 러닝 알고리즘이기 때문입니다.
데이터 세트는 MNIST라고 하며 손으로 쓴 숫자 인식을 나타냅니다. Yann LeCun의 웹 사이트 (페이스 북 AI 리서치 이사)에서 더 많은 정보를 찾을 수 있습니다. 그는 이야기 해 왔던 것과 오늘날 널리 사용되는 CNN (covolutional neural network)과 같은 더 복잡한 접근법의 선구자 중 한 명입니다.
데이터 세트는 70,000 개 이미지 (28x28 픽셀)의 손글씨 숫자 (이미지 당 1 자리)를 제공합니다.
목표는 쓰여진 숫자를 감지하는 알고리즘을 작성하는 것입니다. 10 자리 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 만 있기 때문에 10 개의 클래스에 대한 분류 문제입니다.
목표는 2 개의 은닉층이있는 신경망을 구축하는 것입니다.
관련 패키지 임포트
import numpy as np
import tensorflow as tf
# TensorFLow에는 우리가 사용할 MNIST 용 데이터가 포함되어 있습니다.
# tensorflow-datasets 모듈과 함께 제공되므로 아직 설치하지 않은 경우 다음을 사용하여 패키지를 설치하십시오.
#
# pip install tensorflow-datasets
# 또는
# conda는 tensorflow-datasets install
import tensorflow_datasets as tfds
# 이러한 데이터 세트는
# C:\Users\*USERNAME*\tensorflow_datasets\...
# 에 저장됩니다.
#
# 데이터 세트를 처음 다운로드하면 매번 해당 폴더에 저장되며 자동으로 컴퓨터에 사본을 로드합니다.
평소처럼 이 포스에 필요한 패키지를 가져 와서 시작하겠습니다. 정상적으로 사용하기 위해 텐서플로우 데이터를 사용할 것입니다.
데이터
mnist_dataset, mnist_info = tfds.load(name='mnist', with_info=True, as_supervised=True)
계속해서 데이터를 획득하고 데이터를 로드하기 위해 변수 mnist_dataset에 저장하겠습니다. tfds.load와 데이터 세트의 이름을 작성해야합니다. 하지만 텐서플로우 데이터 세트에는 이 작업으로 모델링 할 준비가 된 많은 수의 데이터 세트가 있습니다. 기본 경로 디렉토리에 있는 데이터 세트를 다운로드 할 수 있습니다.
일반적인 기본 경로를 사용하는 Windows 시스템 C:\Users\*USERNAME*\tensorflow_datasets\...에서 찾을 수 있으며 Linux 사용자인 경우 /tensorflow_datasets 홈 디렉터리에서 찾을 수 있습니다. 텐서플로우 로드 데이터 세트가 다운로드 됩니다. 따라서 연속적으로 코드를 실행할 때마다 자동으로 이 로컬 복사본을 컴퓨터에 로드합니다. 두 가지 조정이 필요합니다. 먼저 인수를 supervised로 true로 설정할 수 있습니다. 그러면 데이터가 로드됩니다.
true와 같고 mnist 변수에 저장된 하나의 최종 인수를 포함하겠습니다. 그러면 데이터 세트의 여러 샘플이 포함된 버전 정보가 포함된 튜플이 제공됩니다. 데이터 셋을 성공적으로 로드했습니다. 이제 이 코드 줄을 실행하거나 동일한 셀에서 사전 처리를 계속할 수 있습니다. 처음으로 실행하면 조금 더 오래걸릴 수 있습니다. 실제로 데이터 셋을 다운로드하기 떄문입니다. 다음 포스팅에서는 데이터 사전 처리를 진행해보겠습니다.
'SW > 딥러닝' 카테고리의 다른 글
45. 딥러닝 : MNIST : 훈련을 위해 데이터를 분류하는 방법, 구현 (0) | 2020.09.11 |
---|---|
44. 딥러닝 : MNIST 분류 예제, 구현 : 데이터 전처리 (0) | 2020.09.05 |
42. 딥러닝 : MNIST : 무엇이고 왜 경험해보아야 하는가? (0) | 2020.09.03 |
41. 딥러닝 : 원핫, 바이너리 인코딩 : 개념, 차이, 장단점, 적용 차이 (0) | 2020.09.02 |
40. 딥러닝 : Categorical Data (범주형 데이터) : 개념, 필요성, 종류 (0) | 2020.08.30 |