선형회귀(Linear Regression) 구현하기

텐서플로 버전 확인

import tensorflow as tf
tf.__version__

2.3.0

2버전대(2.*.*) 가 아닌 1버전이 설치가 되어있으면, 삭제후 재설치 해줍니다.

!pip uninstall tensorflow
!pip install tensorflow

필요 모듈 설정

import tensorflow as tf
import numpy as np
from tensorflow import keras

X, Y 샘플 데이터 및 학습률(learning_rate) 입력

x_data = [11,12,13,14,15,16,17]
y_data = [148, 154, 170, 165, 175, 183, 190]
learning_rate = 0.001

keras의 다차원 계층 모델인 Sequential를 레이어 선언

model = tf.keras.models.Sequential()

입력이 1차원이고 출력이 1차원인 DENSE - Dense는 레이어의 종류

model.add(tf.keras.layers.Dense(1, input_dim = 1))

경사 하강법 선언 (with Learning_rate)

sgd = tf.keras.optimizers.SGD(learning_rate = 0.001)

loss(cost)를 mean_squared_error 방식을 사용

model.compile(loss='mean_squared_error',optimizer=sgd)

모델 학습

model.fit(x_data, y_data, epochs=5000)

풀코드

import tensorflow as tf
import numpy as np
from tensorflow import keras

x_data = [11,12,13,14,15,16,17]
y_data = [148, 154, 170, 165, 175, 183, 190]
learning_rate = 0.001

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(1, input_dim = 1))

sgd = tf.keras.optimizers.SGD(learning_rate = 0.001)
model.compile(loss='mean_squared_error',optimizer=sgd)
model.fit(x_data, y_data, epochs=500)

temp_x = 18
print()
print(f'x가 {temp_x}일 때, y의 예측값 : {model.predict(np.array([temp_x]))[0][0]}')
반응형

+ Recent posts