플레이스 홀더 : 학습 데이터를 포함하는 변수
placeholder를 이용하여 입력값과 설계된 수식을 완전히 분리함으로서 보다 간단하게 어떠한 데이터를 통해 기계 학습을 시키고 관리할 수 있게 됩니다.
tf.placeholder(dtype, shape, name)
( dtype : data type )
기본적으로 많이 쓰이는 형태
a = tf.placeholder(dtype=tf.float32)
1. "여러 개의 데이터에 대하여 각각 5와 더한 값을 반환하는 프로그램을 만들어보라."는 미션에 대한 솔루션을 만들어보자.
=>>> y = x + 5
import tensorflow as tf
# Info성 불필요 메시지 미출력을 위한 작업
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
################################################################
# input data 배열 예시 세팅
input_data = [1, 2, 3, 4, 5]
# x placeholder를 통해 x 변수 정의
x = tf.compat.v1.placeholder(dtype=tf.float32)
# 모델 정의
y = x + 5
# 세션 생성
sess = tf.compat.v1.Session()
# input data를 x에 넣어 모델 시뮬레이션 결과 출력
print(sess.run(y, feed_dict={x: input_data}))
여기에서 보이는 6. , 7. 과 같이 숫자 뒤에 .이 있는 것은 6.0 7.0 이라는 의미이다.
2. 수학 점수와 영어 점수의 평균을 구하는 코드를 짜보자.
import tensorflow as tf
# Info성 불필요 메시지 미출력을 위한 작업
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
################################################################
# 수학점수와 영어점수 예시
math_score = [80, 82, 84, 86, 88]
english_score = [70, 73, 76, 79, 82]
# placeholder를 통해 a, b 변수 정의
a = tf.compat.v1.placeholder(dtype=tf.float32)
b = tf.compat.v1.placeholder(dtype=tf.float32)
# 모델 정의
y = (a + b) / 2
# 세션 생성
sess = tf.compat.v1.Session()
#수학점수, 영어점수 데이터를 a, b에 넣어 모델 시뮬레이션 결과 출력
result = sess.run(y, feed_dict={a : math_score, b : english_score})
print(result)