반응형
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
반응형
'💻 개인공부 💻 > 머신러닝, 딥러닝' 카테고리의 다른 글
[ 딥러닝 알아가기 ] 경사하강법, 역전파, SoftMax 함수 (0) | 2020.12.24 |
---|---|
[ tensorflow ] 간단한 선형회귀모델 만들기 (0) | 2020.12.21 |
[ Tensorflow ] tf.constant, tf.placeholder, tf.Variable의 차이를 알아보자 (0) | 2020.12.21 |
[ Tensorflow 예제 ] Multi-variable linear Regression을 Tensorflow에서 구현 (0) | 2020.12.17 |
[ 딥러닝 알아가기 ] 선형회귀(Linear Regression)와 경사하강법 (0) | 2020.07.25 |