다변인 선형회귀를 활용한 배추 가격 예측 AI 개발하기 4강 - 저장된 학습 모델로 배추 가격 예측하기
다변인 선형회귀를 활용한 배추 가격 예측 AI 개발하기 4강 - 저장된 학습 모델로 배추 가격 예측하기
나동빈
지난 시간에는 다변인 선형회귀 기본 예제를 이용해 배추 가격을 예측하는 학습 모델을 만들어 보았습니다. 이번 시간에는 그렇게 저장된 학습 모델을 필요할 때 불러와서 즉시 배추 가격을 예측할 수 있도록 해보겠습니다.
※ 학습 모델을 저장하는 이유 ※
학습 모델을 저장하는 이유는 간단합니다. 만약 학습 모델을 저장하지 않고 사용자로부터 배추 가격 예측 요청(Request)이 발생할 때마다 매 번 학습을 해서 결과를 돌려준다면 시간이 오래 걸리고 많은 리소스가 소모 될 것입니다.
따라서 오프라인(Offline)에서 주기적으로 데이터를 이용해 학습을 진행한 뒤에, 그 결과를 저장해서 서버에서는 실시간 요청에 따라 이미 저장된 학습 모델로 배추 가격을 예측하는 것이 효율적입니다.
※ 배추 가격 예측 테스트 소스코드 ※
따라서 실제 웹 서버의 기능을 구현하기 전에 간단히 배추 가격을 예측하는 테스트 소스코드를 작성해봅시다.
import tensorflow as tf
import numpy as np
# 플레이스 홀더를 설정합니다.
X = tf.placeholder(tf.float32, shape=[None, 4])
Y = tf.placeholder(tf.float32, shape=[None, 1])
W = tf.Variable(tf.random_normal([4, 1]), name="weight")
b = tf.Variable(tf.random_normal([1]), name="bias")
# 가설을 설정합니다.
hypothesis = tf.matmul(X, W) + b
# 저장된 모델을 불러오는 객체를 선언합니다.
saver = tf.train.Saver()
model = tf.global_variables_initializer()
# 4가지 변수를 입력 받습니다.
avg_temp = float(input('평균 온도: '))
min_temp = float(input('최저 온도: '))
max_temp = float(input('최고 온도: '))
rain_fall = float(input('강수량: '))
with tf.Session() as sess:
sess.run(model)
# 저장된 학습 모델을 파일로부터 불러옵니다.
save_path = "./saved.cpkt"
saver.restore(sess, save_path)
# 사용자의 입력 값을 이용해 배열을 만듭니다.
data = ((avg_temp, min_temp, max_temp, rain_fall), )
arr = np.array(data, dtype=np.float32)
# 예측을 수행한 뒤에 그 결과를 출력합니다.
x_data = arr[0:4]
dict = sess.run(hypothesis, feed_dict={X: x_data})
print(dict[0])
이후에 파일을 위와 같이 저장된 학습 모델 파일과 동일한 경로에 두고 실행하시면 됩니다.
위와 같의 임의로 넣어 본 데이터에서 학습 결과를 정상적으로 출력한 것을 알 수 있습니다.
- 평균 온도: 10
- 최저 온도: -5
- 최고 온도: 20
- 강수량: 0.8
예측된 배추 가격: 5946원
'선형회귀 AI 활용 프로젝트' 카테고리의 다른 글
다변인 선형회귀를 활용한 배추 가격 예측 AI 개발하기 6강 - 플라스크 웹 서버와 웹 디자인 구현하기 (1) | 2018.08.25 |
---|---|
다변인 선형회귀를 활용한 배추 가격 예측 AI 개발하기 5강 - 기초 데이터 시각화하기 (0) | 2018.08.25 |
다변인 선형회귀를 활용한 배추 가격 예측 AI 개발하기 3강 - 다변인 선형회귀 모델 개발하기 (2) | 2018.08.23 |
다변인 선형회귀를 활용한 배추 가격 예측 AI 개발하기 2강 - 프로젝트 아이디어 및 데이터 수집 (1) | 2018.08.23 |
다변인 선형회귀를 활용한 배추 가격 예측 AI 개발하기 1강 - 프로젝트 개요 (0) | 2018.08.23 |