💻 개인공부 💻/머신러닝, 딥러닝
[ Tensorflow 예제 ] Linear Regression의 cost최소화의 Tensorflow 구현
공대생 배기웅
2020. 12. 17. 16:02
반응형
Linear Regression 첫 번째 예시
소스코드 설명
import tensorflow.compat.v1 as tf
print(tf.__version__)
# 텐서플로우 사용하기 위해 import
tf.disable_v2_behavior()
import matplotlib.pyplot as plt
# 그래프를 그래기 위해 import
x =[1,2,3]
y =[1,2,3]
w = tf.placeholder(tf.float32)
# 입력값x와 출력값y를 선언, w는 float(실수) 형태의 변수로 정의해줌
# 선형모델이 w*x라고 가정
hypothesis = w*x
# cost함수 정의
cost = tf.reduce_mean(tf.square(hypothesis - y))
#launch the graph in a session
sess = tf.Session()
sess.run(tf.global_variables_initializer())
#initializes global variables in the graph
w_val = []
cost_val = []
# 그래프를 그리기 위한 변수 w_val과 cost_val을 배열의 형태로 선언
# for문을 이용하여 x값이 -30일때부터 50일때까지 그래프 그림
for i in range(-30,50):
feed_w = i*0.1
# feed_w를 for문이 끝날 때마다 0.1씩 곱해줌. (-3 ~ 5)
curr_cost, curr_w= sess.run([cost,w], feed_dict = {w: feed_w})
w_val.append(curr_w)
cost_val.append(curr_cost)
plt.plot(w_val, cost_val)
# 그래프의 x값과 y값 변수를 정의
plt.show()
# 그래프 출력
실행결과
Linear Regression 두 번째 예시 (when w= -3.0)
소스코드 설명
import tensorflow.compat.v1 as tf
print(tf.__version__)
tf.disable_v2_behavior()
# 텐서플로우 사용하기 위해 import
x = [1,2,3]
y = [1,2,3]
w = tf.Variable(-3.0)
# y = w*x 라는 식의 변수를 위와 같이 정의, w의 초기값은 -3
hypothesis = w*x
# 가설식 정의
cost = tf.reduce_mean(tf.square(hypothesis - y))
# cost함수 정의
optimizer = tf.train.GradientDescentOptimizer(learning_rate = 0.1)
train = optimizer.minimize(cost)
sess = tf.Session()
#launch the graph in a session
sess.run(tf.global_variables_initializer())
#initializes global variables in the graph
for step in range(100):
print(step, sess.run(w))
sess.run(train)
실행 결과
참고자료
728x90
반응형