이전 시간에는 가지고 있는 데이터를 통해 기계를 학습시켜 모델을 만들어내도록 하고 그 모델을 파일 형태(cpkt)로 저장하도록 하였습니다. ( 아래 페이지 참조 )

https://growingsaja.tistory.com/147

 

이렇게 저장된 모델을 이용하여 특정 상황의 각 X 값을 입력해주면 그 결과로 Y 값을 도출해주는 작업을 해보겠습니다.

 => 평균 온도, 최저 온도, 최고 온도, 강수량 이렇게 4개의 변수를 입력하여 예상되는 배추의 가격을 확인해보겠습니다.

 

import tensorflow as tf
import numpy as np
# Info성 불필요 메시지 미출력을 위한 작업
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

# 플레이스 홀더 세팅
X = tf.compat.v1.placeholder(tf.float32, shape=[None, 4])
Y = tf.compat.v1.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

# 저장된 모델을 불러올 객체 선언 및 초기화를 위한 변수 model 세팅
saver = tf.compat.v1.train.Saver()
init = tf.compat.v1.global_variables_initializer()

# 사용자로부터 값 입력받음 - 4개 변수
avg_temp = float(input('평균 온도: '))
min_temp = float(input('최저 온도: '))
max_temp = float(input('최고 온도: '))
rain_fall = float(input('강수량: '))

# 텐서플로우의 세션을 이용해서 데이터를 모델에 적용한 결과값을 가져오기
with tf.compat.v1.Session() as sess:
    # 세션 초기화
    sess.run(init)

    # restore 함수를 이용해 학습 모델을 그대로 가져옴
    save_path = "./saved.cpkt"
    saver.restore(sess, save_path)

    # 사용자의 입력값을 통해 2차원 배열을 생성
    data = ((avg_temp, min_temp, max_temp, rain_fall), (0, 0, 0, 0))
    # 튜플 형태 data와 그가 포함한 튜플을 모두 list 형태로 변경
    arr = np.array(data, dtype=np.float32)
    x_data = arr[0:1]
    #### 해당 부분에서 data에 (0, 0, 0, 0) 누락시 Error 발생
    #### 해당 부분에서 x_data 에 arr[0] 으로 입력시 Error 발생

    dict = sess.run(hypothesis, feed_dict={X: x_data})
    print("예상되는 배추 가격 : " + str(dict[0][0]))

 

WARNING 문구는 Info성 메시지로 작동에는 문제가 없습니다.

 

 

 

+ Recent posts