SW/딥러닝

43. 딥러닝 : MNIST 분류 예제 : 패키지 임포트, 데이터 준비

얇은생각 2020. 9. 4. 07:30
반응형

43. 딥러닝 : MNIST 분류 예제 : 패키지 임포트, 데이터 준비

 

 

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 변수에 저장된 하나의 최종 인수를 포함하겠습니다. 그러면 데이터 세트의 여러 샘플이 포함된 버전 정보가 포함된 튜플이 제공됩니다. 데이터 셋을 성공적으로 로드했습니다. 이제 이 코드 줄을 실행하거나 동일한 셀에서 사전 처리를 계속할 수 있습니다. 처음으로 실행하면 조금 더 오래걸릴 수 있습니다. 실제로 데이터 셋을 다운로드하기 떄문입니다. 다음 포스팅에서는 데이터 사전 처리를 진행해보겠습니다.

반응형