Introduction
...
자~ 설명보다는 한번 보는게 더 좋겠네요.
텐서플로우를 실행해볼까요.
예제 코드부터 간단히 시작해 봅시다. (텐서플로우 설치 후, 주피터 노트북에서 실행하면 편리하게 사용 가능)
무엇을 할 것인가?
정보 | ||
---|---|---|
| ||
가중치 W와 위상차 b를 구하라. y = W * x + b 라는 상황이 놓여 있다. 입력값 x에 대해서 y를 안다고 가정했을 때, 이를 텐서플로우에 학습시켜 적절한 알고리즘을 이용하여 최적의 W와 b 값을 찾아보자. |
소스코드
코드 블럭 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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] |
소스코드 설명
데이터 플로우 그래프 구축
가상의 소수점 데이터 x_data, y_data를 각각 100개씩 만들어 줍니다.
...
optimizer를 설정하고, 최적화는 loss가 최저가 되는 값이 되도록 경사하강법을 이용하여 학습 합니다...... 뭐 이런 이야기 같습니다. (저도 처음이라서 잘 모르는 상태입니다. → 접한지 3일째 되던 당시)
2. 텐서플로우 가동
아무튼 변수 초기화를 한 다음에 세션 받고, 시작합니다.(법칙임)
...
그러면 W는 0.1에 수렴하고, b는 0.3에 수렴해가는 결과를 기대할 수 있습니다.
소스코드 결과
코드 수행은 이미 설치한 jupyter에 예제에 코드 넣고 돌리면 돌아간다.
파일 하나 만들고, 거기서 직접 수행하도록 하면 좋겠지만, 아직은 모르니깐 일단 해 보고 넘어가자.
앞으로 어떻게 접근할까
저처럼 이쪽 잘 모르는 사람도 있을 것이고, 그래도 어느 정도 경험해 봤다는 분도 있을 겁니다.
...
그리고 딱히 텐서플로우와 MNIST에 대해서는 이미 튜토리얼 예제로 제공하고 있으니 걱정할 필요 없습니다.