Tensorflow2016. 10. 24. 17:00


Tensorflow의 데이터를 입력 받는 방법중에서 상수와 변수를 생성하는 방법을 앞에서 보았는데요

이번에는 데이터의 형태만 지정하고 실제 데이터는 실행 단계에서 입력받도록 하는 방법에 대해서 알아보겠습니다.


기본 제공되는 placeholder()를 이용해서 다양한 데이터를 입력 받아 처리할 수 있도록 할 수 있습니다.



실수형의 x, y을 선언하고

실제 실행이 되는 시점의 sess.run() 에서 feed_dict 속성으로 데이터를 feed 하여 사용하게 됩니다.

결과 값은 정상적으로 15.0이 출력됩니다.

import tensorflow as tf

x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
z = tf.mul(x, y)

sess = tf.Session()
print(sess.run(z, feed_dict={x: 3., y: 5.}))

> 15.0




실수형의 데이터만 선언하였고 그외에 shape를 선택하지 않았기에 다양한 입력값의 shape도 처리가 가능합니다.

Vector 형태의 입력 데이터로 실행을 해보겠습니다.


import tensorflow as tf

x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
z = tf.mul(x, y)

sess = tf.Session()
print(sess.run(z, feed_dict={x: [3.,3.], y: [5.,5.]}))

[ 15.  15.]




Matrix 형태의 입력 데이터도 정상적으로 처리가 될 수 있습니다.


import tensorflow as tf

x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
z = tf.mul(x, y)

sess = tf.Session()
print(sess.run(z, feed_dict={x: [[3.,3.],[3.,3.]], y: [[5.,5.],[5.,5.]]}))

>[[ 15.  15.]

  [ 15.  15.]]




만약에, 특정한 shape의 Matrix만을 입력 데이터로 사용하고자 할때에는 다음과 같이 지정할 수 있습니다.

shape=(2,2)는 2x2 matrix를 입력값으로 처리하며 그외에의 입력값은 오류 처리가 됩니다.


import tensorflow as tf

x = tf.placeholder(tf.float32, shape=(2,2))
y = tf.placeholder(tf.float32, shape=(2,2))
z = tf.mul(x, y)

sess = tf.Session()
print(sess.run(z, feed_dict={x: [[3.,3.],[3.,3.]], y: [[5.,5.],[5.,5.]]}))

> [[ 15.  15.]

   [ 15.  15.]]








Posted by 대소니

댓글을 달아 주세요