반응형

플레이스 홀더(tf.placeholder)에 대해 알아봅니다.




다음 사이트에 있는 텐서플로우 예제들을 공부한 결과를 비정기적으로 올릴 예정입니다.

https://github.com/aymericdamien/TensorFlow-Examples






텐서플로우 2.0에서 텐서플로우 1.x 코드를 실행하는 방법을 설명합니다. 


Tensorflow 2.0에서 Tensorflow 1.x 코드 실행하기

https://webnautes.tistory.com/1393




tf.constant 함수에서는 입력으로 사용할 값을 아규먼트로 입력해줘야 했지만


a = tf.constant(2)



tf.placeholder 함수는 입력으로 사용할 데이터의 타입만 지정해주고  실제값은 나중에 세션에서 실행될때 입력해줍니다.


from __future__ import print_function

import tensorflow as tf


# tf.placeholder는 플레이스 홀더 오퍼레이션을 생성합니다.

# 변수 a와 b는 오퍼레이션의 출력인 텐서를 가리킵니다.
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)

# 플레이스 홀더 텐서를 사용하여 수행할 오퍼레이션을 정의합니다.
add = tf.add(a, b)

# 세션에서 플레이스 홀더에 입력으로 사용할 데이터를 지정해줘야 합니다.

with tf.Session() as sess:

   # feed_dict 아규먼트로 플레이스 홀더 텐서 a와 b에 제공할 데이터를 지정해주지 않으면 add 오퍼레이션을 수행할 수 없습니다.

   print("%i" % sess.run(add, feed_dict={a: 2, b: 3}))




그래프 생성을 완료한 후, 나중에 대량의 데이터를 입력으로 사용하려면 플레이스 홀더를 사용해야 합니다.


from __future__ import print_function

import tensorflow as tf


a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)

#print(a)
#print(a.op)
#
# 변수 a는 플레이스 홀더의 출력 텐서를 가리키고 있습니다.
# Tensor("Placeholder:0", dtype=int16)
#
# a.op를 출력해보면
# name: "Placeholder"
# op: "Placeholder"            플레이스 홀더 오퍼레이션을 의미합니다.
# attr {
#   key: "dtype"
#   value {
#     type: DT_INT16           출력 텐서의 데이터 타입이 16비트 정수입니다.
#   }
# }
# attr {
#   key: "shape"
#   value {
#     shape {
#       unknown_rank: true    플레이스 홀더는 나중에 입력을 받기 때문에 차원이 정해져 있지 않습니다.
#     }
#   }
# }


# 플레이스 홀더 텐서를 사용하여 수행할 오퍼레이션을 정의합니다.
mul = tf.multiply(a, b)

# 플레이스 홀더에 입력할 값을 리스트로 생성합니다.
X = list(range(1, 10, 1))
Y = list(range(2, 20, 2))

with tf.Session() as sess:
   # 플레이스 홀더에 연속적인 데이터를 입력할 수 도 있습니다.
   Z = sess.run(mul, feed_dict={a: X, b: Y})

for x, y, z in zip(X, Y, Z):  # zip 함수는 같은 크기의 리스트의 데이터를 조합하여 튜플을 리턴합니다.
   print( x, ' * ', y, ' = ', z)
   
# 이번 예제의 실행결과 두 개의 리스트에 있는 정수들의 곱을 출력합니다.
# 1  * 2 =  2
# 2  * 4 =  8
# 3  * 6 =  18
# 4  * 8 =  32
# 5  * 10  = 50
# 6  * 12  = 72
# 7  * 14  = 98
# 8  * 16  = 128
# 9  * 18  = 162





원본 코드

https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1_Introduction/basic_operations.py


마지막 업데이트 - 2018. 8. 18



반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts