MNIST 데이터 The MNIST Data
The MNIST data is hosted on Yann LeCun's website.
MNIST데이터는 Yann LeCun의 웹사이트에 호스팅되어 있습니다.
For your convenience, we've included some python code to download and install the data automatically.
편의 상, 데이터를 다운로드하여 자동으로 설치하는 약간의 파이썬(python) 코드를 포함 시켰습니다.
You can either download the code and import it as below, or simply copy and paste it in.
코드를 다운로드한 후 아래와 같이 import하거나, 또는 단순히 복사해서 붙여 넣으면 됩니다.
import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("./samples/MNIST_data/", one_hot=True)
Output
Extracting ./samples/MNIST_data/train-images-idx3-ubyte.gz
Extracting ./samples/MNIST_data/train-labels-idx1-ubyte.gz
Extracting ./samples/MNIST_data/t10k-images-idx3-ubyte.gz
Extracting ./samples/MNIST_data/t10k-labels-idx1-ubyte.gz
The downloaded data is split into two parts, 60,000 data points of training data (mnist.train) and 10,000 points of test data (mnist.test).
다운로드된 데이터를, 60,000 데이터포인트의 훈련데이터(mnist.train)와 10,000 포인트의 테스트데이터(mnist.test)로 분리합니다.
This split is very important: it's essential in machine learning that we have separate data which we don't learn from so that we can make sure that what we've learned actually generalizes!
이 분리는 매우 중요합니다: ML에서, 학습 안된 데이터를 별도로 갖는 것이 중요한데, 그래야 학습한 것을 실제로 확실하게 일반화할 수 있기 때문입니다!
As mentioned earlier, every MNIST data point has two parts: an image of a handwritten digit and a corresponding label.
앞서 언급된 바와 같이, 모든 MNIST데이터포인트는 두 부분으로 되어 있습니다: 수기 숫자 이미지와 상응한 레이블.
We will call the images "xs" and the labels "ys".
이미지를 "xs", 레이블을 "ys" 라고 부릅니다.
Both the training set and test set contain xs and ys, for example the training images are mnist.train.images and the train labels are mnist.train.labels.
훈련용 세트와 테스트 세트 모두 xs와 ys를 포함하고 있는데, 예를 들어, 훈련용 이미지는 mnist.train.images이고 훈련 레이블은 mnist.train.labels 입니다.
Each image is 28 pixels by 28 pixels.
각각의 이미지는 28픽셀 x 28픽셀입니다.
www.dopza.com
We can interpret this as a big array of numbers:
이들 픽셀을 숫자들의 큰 배열(array)로 해석할 수 있습니다:
We can flatten this array into a vector of 28x28 = 784 numbers.
이 배열을 28x28 = 784 숫자의 벡터로 평면화 할 수 있습니다.
It doesn't matter how we flatten the array, as long as we're consistent between images.
이미지 간 일관성이 유지되는 한, 배열의 평면화(flatten) 방법은 중요하지 않습니다.
From this perspective, the MNIST images are just a bunch of points in a 784-dimensional vector space, with a very rich structure (warning: computationally intensive visualizations).
이러한 관점에서, MNIST 이미지는, 매우 풍부한 구조(주의: 컴퓨터자원이 많이 요구되는 시각화)를 가진, 784-차원 벡터 공간에 있는 점들의 덩어리일 뿐입니다.
Flattening the data throws away information about the 2D structure of the image.
데이터가 평면화 되면 2D 구조의 이미지에 대한 정보는 없어집니다.
Isn't that bad?
그것이 나쁘지 않습니까?
Well, the best computer vision methods do exploit this structure, and we will in later tutorials.
최고의 컴퓨터 비전 방법은 이 구조를 이용하며, 이 교본의 뒤에서도 그렇게 할 것입니다.
But the simple method we will be using here, a softmax regression, won't.
하지만 여기서 사용할 간단한 방법인, softmax 회귀는 이 구조를 사용하지 않을 것입니다.
The result is that mnist.train.images is a tensor (an n-dimensional array) with a shape of [60000, 784].
그 결과 mnist.train.images는 [60000, 784] 형상의 tensor (n-차원 배열)입니다.
The first dimension indexes the images and the second dimension indexes the pixels in each image.
1차원은 이미지를 인덱스하고, 2차원은 각 이미지 안에 있는 픽셀을 인덱스합니다.
Each entry in the tensor is the pixel intensity between 0 and 1, for a particular pixel in a particular image.
tensor안의 각 엔트리는, 특정 이미지 안의 특정 픽셀에 대한, 0과 1사이의 픽셀 강도(intensity) 즉, 진하기 정도입니다.
The corresponding labels in MNIST are numbers between 0 and 9, describing which digit a given image is of.
MNIST 안의 상응하는 레이블은 0과 9사이의 숫자들로, 주어진 이미지가 어떤 숫자인지 서술합니다.
For the purposes of this tutorial, we're going to want our labels as "one-hot vectors".
이 교본의 목적 상, 레이블들을 “1-뜨거운 벡터들(one-hot vectors)”로 하고자 합니다.
A one-hot vector is a vector which is 0 in most dimensions, and 1 in a single dimension.
1-뜨거운 벡터는, 대부분의 차원에서는 0이고, 한 차원에서만 1인 벡터입니다.
In this case, the nth digit will be represented as a vector which is 1 in the nth dimensions.
이 경우, n번째 숫자는 n번째 차원에서 1인 벡터로 표현될 것입니다.
For example, 0 would be [1,0,0,0,0,0,0,0,0,0,0].
예를 들어, 0은 [1,0,0,0,0,0,0,0,0,0,0]이 될 것입니다.
Consequently, mnist.train.labels is a [60000, 10] array of floats.
결과적으로, mnist.train.labels은 [60000, 10] 플로트 배열 입니다.
We're now ready to actually make our model!
실제 모델을 만들어봅니다!
'TensorFlow' 카테고리의 다른 글
회귀 구현하기 Implementing the Regression (7) (0) | 2016.01.29 |
---|---|
소프트맥스 회귀 Softmax Regressions (6) (0) | 2016.01.28 |
초보자를 위한 MNIST MNIST For ML Beginners (4) (0) | 2016.01.26 |
Why Did Google Open Source This? 왜 구글이 소스를 공개? (3) (0) | 2016.01.26 |
텐서플로우의 장점 (2) (1) | 2016.01.26 |
댓글