티스토리 뷰

모두를 위한 머신러닝 / 딥러닝 김성훈 교수님 강의를 듣고 정리한 내용입니다.

Lab 02 - tensorflow로 간단한 linear regression을 구현  


@ Linear regression

- cost function이 가장 작은 W, b를 구하는 것 : minimize cost(W,b)

- hypothesis

- cost function


@ TensorFlow
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

import tensorflow as tf

# data set
x_train = [1, 2, 3]
y_train = [2.1, 3.1, 4.1]

# placeholder
X = tf.placeholder(tf.float32, shape=[None])
Y = tf.placeholder(tf.float32, shape=[None])

# Rank 1인 랜덤한 값을 W b에 부여
W = tf.Variable(tf.random_normal([1]), name='weight')
b = tf.Variable(tf.random_normal([1]), name='bias')

# Hypothesis
hypothesis = X * W + b

# cost / loss function
cost = tf.reduce_mean(tf.square(hypothesis - y_train)) # tf.reduce_mean() : 평균 내는 함수

# Minimize
optimizer = tf.train.GradientDescentOptimizer(learning_rate = 0.01) # GradientDescent 알고리즘을 이용(뒤쪽에서 설명)
train = optimizer.minimize(cost) # train이라는 node

# 세션 준비 및 초기화
sess = tf.Session()
sess.run(tf.global_variables_initializer()) # tf.Variable()을 사용하려면 꼭 초기화를 해야한다.

for step in range(2001):
cost_val, W_val, b_val, _ = sess.run([cost, W, b, train], feed_dict={X:x_train, Y:y_train})
if step % 20 == 0:
print(step, cost_val, W_val, b_val)
# 학습 결과 : 2000 6.81362e-06 [ 0.9969756] [ 1.10687506]

# 테스트
print(sess.run(hypothesis, feed_dict={X: [5]})) # [ 6.09175301]
print(sess.run(hypothesis, feed_dict={X: [1.5, 3.5]})) # [ 2.60233831 4.59628963]


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함