본문 바로가기
프로그래밍/AI

[그레이 후드 공부방] 텐서플로우를 시작하며

by 그레이 후드 2017. 8. 2.
728x90

회귀 분석 코드

 

이 코드는 2차원 샘플 데이터를 사용하여 분포에 맞는 직선을 찾는 간단한 파이썬 프로그램입니다.

 

+

 

참조 사이트 :

텐서플로우 문서 한글 번역본 :: https://tensorflowkorea.gitbooks.io/tensorflow-kr/content/g3doc/get_started/

 

 

001_doc_start.py

 

import tensorflow as tf

import numpy as np

 

# 100개의 가짜 데이터 포인트를 NumPy 라이브러리 안에서 생성한다.

# y = x * 0.1 + 0.3

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

y_data = x_data * 0.1 + 0.3

 

# y_data = W * x_data + b 를 계산하기 위한 W와 b를 찾아본다.

# 코드로는 W가 0.1, b가 0.3인 것을 알 수 있지만

# Tensorflow는 직접 찾아낼 것이다.

W = tf.Variable(tf.random_uniform([1], -1.0, 1.))

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)

 

# 시작하기 전에, 변수를 설정한다.

# 초기화를 가장 먼저 실행할 것이다.

init = tf.global_variables_initializer()

 

# 그래프를 실행한다.

sess = tf.Session()

sess.run(init)

 

# 줄을 맞춘다.

for step in range(401):

    sess.run(train)

    if step % 20 == 0:

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

 

# Best fit이 W: 0.1, b: 0.3 임을 학습한다.

 

# 끝나면 세션을 닫는다.

sess.close()

 

소스는 튜토리얼 그대로 해 보았구요,

아주 확실한 학습 결과를 보기 위해서 range만 401로 고쳤습니다.

다음은 결과 화면입니다.

 

 

결과에 따라 0.0999999 와 0.3000001 로 나타나기도 하네요.

728x90

댓글