Deep MNIST for Experts 전문가용 Deep MNIST
TensorFlow는 대규모 수치계산을 수행하는
강력한 라이브러리입니다. 이 라이브러리가
가속하는 작업 중
하나는 심층신경망(Deep neural network, DNN)을 구현하고
훈련 시키는 것입니다. 이제 부터 심층합성곱NMIST분류기(deep convolutional NMIST classifier)를 만들면서 TensorFlow 모델의
기본 빌딩블록에 대해
배울 것입니다.
TensorFlow is a powerful library for doing large-scale numerical computation.
One of the tasks at which it excels is implementing and training deep neural
networks. In this tutorial we will learn the basic building blocks of a
TensorFlow model while constructing a deep convolutional MNIST classifier.
이
교본은 독자가 NN과 MNIST데이터집합에 익숙하다고
가정합니다. 관련된 배경
지식 이 없다면, 초보자용 소개(introduction for
beginners)를
읽어야 합니다. 시작 전에
TensorFlow를 설치하세요.
This introduction assumes familiarity with neural networks and the MNIST
dataset. If you don't have a background with them, check out the introduction for
beginners. Be sure to install TensorFlow before
starting.
설정 Setup
모델을 만들기 전에 먼저 MNIST 데이터집합을 불러온 다음 TensorFlow 세션을 시작 합니다.
Before we create our model, we will first load the MNIST dataset, and start a
TensorFlow session.
MNIST 데이터 불러오기 Load MNIST Data
편의상, NMIST 데이터집합을 자동으로
다운로드해서 import하는 스크립트를
포함해 놓았습니다. 이 스크립트가
데이터 파일을 보관할 ‘MNIST_data'
디렉토리를 만듭니다.
For your convenience, we've included a script which
automatically downloads and imports the MNIST dataset. It will create a
directory 'MNIST_data' in which to store the data files.
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
mnist는 훈련용, 검증용, 테스팅용 데이터집합을 NumPy배열 형태로 저장하는 가벼운 클래스 입니다. 또한, 데이터 미니배치(minibatch)들을 통해 반복 함수를 제공하는데, 미니배치는 아래에서 사용됩니다.
Here mnist
is a lightweight class which stores the training, validation, and testing
sets as NumPy arrays. It also provides a function for iterating through data
minibatches, which we will use below.
TensorFlow InteractiveSession 시작하기 Start TensorFlow InteractiveSession
TensorFlow는 매우 효율적인 C++ 백엔드에서 계산합니다. 이 백엔드로의 연결을 세션 (session) 이라고 합니다. TensorFlow 프로그램은 일반적으로 먼저 그래프를 만든 후 세션 안에서 그래프를 가동시킵니다.
Tensorflow relies on a highly efficient C++ backend to do its
computation. The connection to this backend is called a session. The common
usage for TensorFlow programs is to first create a graph and then launch it in
a session.
여기서는 session대신 간편한 InteractiveSession클래스를 사용하는데, 이 클래스를 사용하면 TensorFlow에서 보다 유연하게 코드를 구성할 수 있습니다. 이 클래스로 계산 그래프 (computation graph) 작성ops와 그래프 가동ops를 교차배치(interleave) 할 수 있습니다. 이것은 IPython등과 같은 상호작용 방식으로 작업할 때 특히 유용합니다. 이 클래스를 사용하지 않는 경우에는, 세션을 시작하고 그래프를 가동시키기 전에 계산 그래프를 미리 모두 만들어 놓아야 합니다.
Here we instead use the convenient InteractiveSession
class, which makes TensorFlow more flexible about how you structure your code.
It allows you to interleave operations which build a computation graph with ones that run the graph. This is particularly convenient
when working in interactive contexts like IPython. If you are not using an InteractiveSession
,
then you should build the entire computation graph before starting a session
and launching the graph.
import
tensorflow as tf
sess = tf.InteractiveSession()
'TensorFlow' 카테고리의 다른 글
Deep MNIST (3) (0) | 2016.04.27 |
---|---|
Deep MNIST (2) (0) | 2016.04.27 |
Feeds (13) (0) | 2016.03.31 |
Fetch (12) (0) | 2016.03.31 |
변수 Variables (11) (0) | 2016.03.31 |
댓글