본문 바로가기
TensorFlow

TensorFlow Introduction (8)

by EasyGPT 2016. 3. 31.
반응형

Introduction   소개

TensorFlow is a general-purpose system for graph-based computation. A typical use is machine learning. We'll introduce the basic concepts of TensorFlow using some simple examples.
TensorFlow
그래프-기반 계산(computation) 위한 범용 시스템입니다. 일반적으로 기계학습(ML) 사용됩니다. 가지 간단한 예제를 사용하여 TensorFlow 기본 개념을 소개합니다.

TensorFlow gets its name from tensors, which are arrays of arbitrary dimensionality. A vector is a 1-d array and is known as a 1st-order tensor. A matrix is a 2-d array and a 2nd-order tensor. The "flow" part of the name refers to computation flowing through a graph. Training and inference in a neural network, for example, involves the propagation of matrix computations through many nodes in a computational graph.
TensorFlow
텐서에서 이름을 가져왔는데, 텐서는 임의의 차원의 배열(arrays)입니다. 벡터 1 차원(1-d) 배열로, 첫째(1st)-order 텐서로 알려져 있습니다. 행렬(matrix) 2차원(2-d) 배열로 두번째 (2nd)-order 텐서입니다. 이름 TensorFlow에서 "흐름(flow)" 그래프를 통해 흐르는 계산을 가리킵니다. 예를 들어, 신경망(NN)에서 훈련과 추론은, 계산 그래프 내의 많은 노드를 통한 행렬 계산의 전파를 포함합니다.

 

When you think of doing things in TensorFlow, you might want to think of creating tensors (like matrices), adding operations (that output other tensors), and then executing the computation (running the computational graph). In particular, it's important to realize that when you add an operation on tensors, it doesn't execute immediately. Rather, TensorFlow waits for you to define all the operations you want to perform. Then, TensorFlow optimizes the computation graph, deciding how to execute the computation, before generating the data. Because of this, a tensor in TensorFlow isn't so much holding the data as a placeholder for holding the data, waiting for the data to arrive when a computation is executed.
TensorFlow
에서 어떤 일을 수행한다고 생각하면, 텐서 생성(행렬 ), 연산(op) 추가(다른 텐서를 출력하는), 계산 실행(계산 그래프 실행) 하고자 생각할 것입니다. 특히, 텐서에 op 추가하는 즉시 op 실행되지 않음을 알아야 합니다. 수행하고자 하는 모든 op 정의될 때까지 TensorFlow 기다립니다. 그런 다음 TensorFlow 데이터를 생성시키기 전에, 계산 실행방법을 결정하면서, 계산 그래프를 최적화합니다. 때문에 TensorFlow 안의 텐서는 데이터 보유용 placeholder 너무 많은 데이터를 보유하지 않고, 계산이 실행될 데이터의 도착을 기다립니다.

Let's get you up and running with TensorFlow! TensorFlow 가서 가동시켜봅시다!

But before we even get started, let's peek at what TensorFlow code looks like in the Python API, so you have a sense of where we're headed.
시작 전에, TensorFlow 코드가 Python API에서 어떻게 보이는지 잠깐 살펴보면, 무엇을 해야 있습니다.

Here's a little Python program that makes up some data in two dimensions, and then fits a line to it.
아래는 약간 2차원 데이터를 만들어서 라인을 fit하는 작은 파이썬 프로그램입니다.

import tensorflow as tf

import numpy as np

 

# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
# NumPy, y = x * 0.1 + 0.3
안에100개의 가상 x, y 데이터포인트를 만듭니다

x_data = np.random.rand(100).astype(np.float32)

y_data = x_data * 0.1 + 0.3

 

# Try to find values for W and b that compute y_data = W * x_data + b
# y_data = W * x_data + b
계산하는 W b 찾기

# (We know that W should be 0.1 and b 0.3, but Tensorflow will figure that out for us.)
# (W
0.1이고 b 0.3 이어야 함을 알지만, Tensorflow 그것을 알아냅니다.)
W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))

b = tf.Variable(tf.zeros([1]))

y = W * x_data + b

 

# Minimize the mean squared errors. 제곱평균오차 최소화하기.
loss = tf.reduce_mean(tf.square(y - y_data))

optimizer = tf.train.GradientDescentOptimizer(0.5)

train = optimizer.minimize(loss)

 

# Before starting, initialize the variables.  We will 'run' this first.
#
시작 전에 변수 초기화하기. 이것을 제일 먼저 'run' 시킬 것입니다.
init = tf.initialize_all_variables()

 

# Launch the graph. 그래프 시작하기
sess = tf.Session()

sess.run(init)

 

# Fit the line. 라인 fit시키기
for step in xrange(201):

   sess.run(train)

   if step % 20 == 0:

       print(step, sess.run(W), sess.run(b))

 

# Learns best fit is W: [0.1], b: [0.3]   최적 fit W: [0.1], b: [0.3]임을 학습합니다

The first part of this code builds the data flow graph.
코드의 첫째 파트는 데이터흐름그래프 만듭니다.

TensorFlow does not actually run any computation until the session is created and the run function is called.
TensorFlow
세션이 생성되어 run 함수가 호출될 까지, 실제로 어떤 계산도 하지 않습니다.

To whet your appetite further, we suggest you check out what a classical machine learning problem looks like in TensorFlow. In the land of neural networks the most "classic" classical problem is the MNIST handwritten digit classification. We offer two introductions here, one for machine learning newbies, and one for pros. If you've already trained dozens of MNIST models in other software packages, please take the red pill. If you've never even heard of MNIST, definitely take the blue pill. If you're somewhere in between, we suggest skimming blue, then red.
ML
학습 의지를 돋구기 위해, 전형적인 ML 문제가 TensorFlow에서는 어떤 모습인지를 확인해야 합니다. NN 영역에서 가장 "전형적인" 문제는 MNIST 수기 숫자 분류입니다. ML 초보자용과 전문가용 2가지를 소개합니다. 이미 다른 소프트웨어 패키지로 MNIST 모델을 수십 훈련시킨 경우, 전에 없던 현실 세계를 이해하기 바랍니다. MNIST 들어 적이 없다면, 파란 약을 드시고, 중간이면, 파란 약을 훑어 다음 빨간 약을 드시면 됩니다.

MNIST for machine learning beginners tutorialDeep MNIST for machine learning experts tutorial

Images licensed CC BY-SA 4.0; original by W. Carter

TensorFlow 이미 배우고 있고 설치 의지가 확실하다면 이들을 건너 있습니다. 걱정하지 마세요, 여전히 MNIST 것입니다 -- 또한 TensorFlow 기능을 배우는 기술 교본에서 예제로 MNIST 사용할 것입니다.
If you're already sure you want to learn and install TensorFlow you can skip these and charge ahead. Don't worry, you'll still get to see MNIST -- we'll also use MNIST as an example in our technical tutorial where we elaborate on TensorFlow features.

Recommended Next Steps

·      Download and Setup

·      Basic Usage

·      TensorFlow Mechanics 101

반응형

댓글