본문 바로가기

프로그래밍/머신러닝

머신러닝 텐서플로우(tensorflow) 기본 튜토리얼


<인스톨 프로그램>

텐서플로우는 기본적으로 파이썬을 지원하고 있으나, 자바,C,Go 언어도 부분적으로 지원하고 있다.

입문자들에게는 C언어가 익숙할 수 있으나, 윈도우는 지원하지 않는다.

해당언어가 지원하는 플랫폼을 확인후에 설치 바람.

https://www.tensorflow.org/install/ - Tensorflow 공식사이트


윈도우 사용자의 경우,  Anaconda 를 설치하여 파이썬으로 하는 경우가 많다.

아나콘다에 파이썬 인터프린터가 들어있으므로 따로 설치할 필요는 없어보임.

https://www.continuum.io/downloads - Anaconda 다운로드

참고로 python-3.5.3-amd64.exe에서 테스트가 가능하였음.



<텐서플로우 활성화>

https://brunch.co.kr/@mapthecity/15

위 링크에서 활성화 방법을 설명하고 있다.

프롬프트에 activate tensorflow -> python 후 터미널이 열리면 코딩이 가능하다.



<텐서플로우 기본 튜토리얼>

https://www.tensorflow.org/get_started/get_started


해당 예제는 y = Wx + b 와 같은 선형방정식에서

입력값- x_train = [1,2,3,4]과 출력값 - y_train = [0,-1,-2,-3]을 주어진 상태에서 트레이닝하여 a와 b를 추론한다.

참고로 W는 가중치(weight)의 약자.

개별함수에 대한 설명은 생략.

예제에 나오는 함수정도는 해당사이트에서 설명하고 있다.

import numpy as np
import tensorflow as tf

# Model parameters
W
= tf.Variable([.3], tf.float32)
b
= tf.Variable([-.3], tf.float32)
# Model input and output
x
= tf.placeholder(tf.float32)
linear_model
= W * x + b
y
= tf.placeholder(tf.float32)
# loss
loss
= tf.reduce_sum(tf.square(linear_model - y)) # sum of the squares
# optimizer
optimizer
= tf.train.GradientDescentOptimizer(0.01)
train
= optimizer.minimize(loss)
# training data
x_train
= [1,2,3,4]
y_train
= [0,-1,-2,-3]
# training loop
init
= tf.global_variables_initializer()
sess
= tf.Session()
sess
.run(init) # reset values to wrong
for i in range(1000):
  sess
.run(train, {x:x_train, y:y_train})

# evaluate training accuracy
curr_W
, curr_b, curr_loss  = sess.run([W, b, loss], {x:x_train, y:y_train})
print("W: %s b: %s loss: %s"%(curr_W, curr_b, curr_loss))

When run, it produces

W: [-0.9999969] b: [ 0.99999082] loss: 5.69997e-11

실행을 하면, 실제값인 -1과 1에 가까운 수치가 찍힌다. 

예제에서는 가중치가 W변수 하나였지만, 여러개의 변수를 설정하고 추론하는 것도 가능하다.

이후 아래 예제는 고급 API함수를 사용하여 결과를 도출하는 방법(내용은 같음) 과 모델함수를 직접작성하는 내용을 소개하고 있다.


여기까지가 튜토리얼 기본 예제이다.