선형회귀(Linear Regression) 구현하기
텐서플로 1버전 확인 하기
import tensorflow as tf
tf.__version__
1.15.0
X, Y 샘플 데이터 입력
x_data = [11,12,13,14,15,16,17]
y_data = [148, 154, 170, 165, 175, 183, 190]
변수 선언, 가중치(기울기) W, 편향(절편), 학습률(learning_rate)
w = tf.Variable(tf.random_normal([1]))
b = tf.Variable(tf.random_normal([1]))
learning_rate = 0.001
변수 x, y 정의
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
예측값을 구할 가설(Hypothese) 설정, (1차 방정식 만들기)
H = w * x + b
Cost (loss) 함수식 작성
diff = tf.square(H - y)
cost = tf.reduce_mean(diff)
경사 하강법 알고리즘 선언
optimizer = tf.train.GradientDescentOptimizer(learning_rate)
train = optimizer.minimize(cost)
설정한 변수에 대한 초기화 함수 설정(init)
init = tf.global_variables_initializer()
세션을 생성하여 init (Variable)을 아래와 같이 초기화
sess = tf.Session()
sess.run(init)
설정한 모델을 5만번 가량 학습 500번째마다, step, cost, Weight, Bias 출력
for i in range(50001) :
sess.run(train, feed_dict={x : x_data, y : y_data})
if i % 500 == 0 :
print(i, sess.run(cost, feed_dict={x : x_data, y : y_data}), sess.run(w), sess.run(b))
예측할 x (18)의 값을 넣어서 y 값 확인
print(sess.run(H, feed_dict={x : [18]}))
풀코드
import tensorflow as tf
x_data = [11,12,13,14,15,16,17]
y_data = [148, 154, 170, 165, 175, 183, 190]
w = tf.Variable(tf.random_normal([1]))
b = tf.Variable(tf.random_normal([1]))
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
learning_rate = 0.001
H = w * x + b
diff = tf.square(H - y)
cost = tf.reduce_mean(diff)
optimizer = tf.train.GradientDescentOptimizer(learning_rate)
train = optimizer.minimize(cost)
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for i in range(50001) :
sess.run(train, feed_dict={x : x_data, y : y_data})
if i % 500 == 0 :
print(f'Step : {i}, Cost : {sess.run(cost, feed_dict={x : x_data, y : y_data})}, Weight : {sess.run(w)[0]}, Bias : {sess.run(b)[0]}')
temp_x = 18.9
print()
print(f" x 가 {temp_x} 일 때, y의 예측값 :", int(sess.run(H, feed_dict={x : [temp_x]})[0]))
예상 오류
AttributeError: module 'tensorflow' has no attribute 'random_normal'
만약 이런 오류가 뜬다면, 텐서플로 2버전이 설치 되어있을 것입니다.
import tensorflow as tf
tf.__version__
를 통해 버전을 확인 후, 1버전으로 재설치를 해줍니다.
!pip uninstall tensorflow
!pip install tensorflow==1.15
반응형
'AI > Tensorflow' 카테고리의 다른 글
텐서플로 - Tensorflow 2버전 : 다중 선형 회귀 구현 (0) | 2020.08.27 |
---|---|
텐서플로 - Tensorflow 2버전 : 선형 회귀 구현(with Keras) (0) | 2020.08.27 |
텐서플로 - Tensorflow 2버전 : 선형 회귀 구현 (0) | 2020.08.27 |
텐서플로 - Tensorflow 1 버전 사용하기 (in 구글 코랩) (0) | 2020.08.27 |
텐서플로 - TF 1.*버전 vs 2.*버전 (0) | 2020.08.26 |