버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

Introduction

...

자~ 설명보다는 한번 보는게 더 좋겠네요.

텐서플로우를 실행해볼까요.

예제 코드부터 간단히 시작해 봅시다. (텐서플로우 설치 후, 주피터 노트북에서 실행하면 편리하게 사용 가능)

 

무엇을 할 것인가?

정보
title첫 번째 예제

가중치 W와 위상차 b를 구하라.

y = W * x + b 라는 상황이 놓여 있다.

입력값 x에 대해서 y를 안다고 가정했을 때, 이를 텐서플로우에 학습시켜 적절한 알고리즘을 이용하여 최적의 W와 b 값을 찾아보자.

 

소스코드

코드 블럭
languagepy
themeEmacs
title간단한 머신러닝 예제
linenumberstrue
import tensorflow as tf
import numpy as np

# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3
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
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
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.
init = tf.initialize_all_variables()

# Launch the graph.
sess = tf.Session()
sess.run(init)

# Fit the line.
for step in range(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]

 

소스코드 설명

  1. 데이터 플로우 그래프 구축

가상의 소수점 데이터 x_data, y_data를 각각 100개씩 만들어 줍니다.

...

optimizer를 설정하고, 최적화는 loss가 최저가 되는 값이 되도록 경사하강법을 이용하여 학습 합니다...... 뭐 이런 이야기 같습니다. (저도 처음이라서 잘 모르는 상태입니다. → 접한지 3일째 되던 당시)

2. 텐서플로우 가동

아무튼 변수 초기화를 한 다음에 세션 받고, 시작합니다.(법칙임)

...

그러면 W는 0.1에 수렴하고, b는 0.3에 수렴해가는 결과를 기대할 수 있습니다.

 

 

소스코드 결과

코드 수행은 이미 설치한 jupyter에 예제에 코드 넣고 돌리면 돌아간다.

파일 하나 만들고, 거기서 직접 수행하도록 하면 좋겠지만, 아직은 모르니깐 일단 해 보고 넘어가자. 

 

앞으로 어떻게 접근할까

저처럼 이쪽 잘 모르는 사람도 있을 것이고, 그래도 어느 정도 경험해 봤다는 분도 있을 겁니다.

...

그리고 딱히 텐서플로우와 MNIST에 대해서는 이미 튜토리얼 예제로 제공하고 있으니 걱정할 필요 없습니다.

 

 

Recommended Next Steps