Session in Tensorflow

by EMCS LABS — on  , 

Tensorflow Session

Session

  • Session이란 graph, tensor, operation들의 실행 환경
# 실행 환경 구성
sess = tf.Session()

matrix1 = tf.constant([1, 2, 3, 4, 5, 6], shape = [2,3])
matrix2 = tf.constant([7, 8, 9, 10, 11, 12], shape = [3,2])

# cross-product op 정의
product = tf.matmul(matrix1, matrix2)

result = sess.run(product)
print result

sess.close()
  • Session의 두가지 실행 방법
    • fetch (연산의 실행 결과 가져옴)
    • feed (placeholder에 값을 넣어 실행)
# tf.Session.run 함수의 인자
tf.Session.run(fetches, feed_dict=None, options=None, run_metadata=None)
# fetch의 예 (op c를 실행해서 결과만을 가져온다)
a = tf.constant(1)
b = tf.constant(2)
c = tf.add(a,b)
with tf.Session() as sess:
    print sess.run(e)

# feed의 예 (placeholder x에 10을 할당하고 실행)
x = tf.placeholder(tf.int32)
with tf.Session() as sess:
    sess.run(tf.add(x,x), feed_dict={x: 10})
  • Session의 interactive 버전: InteractiveSession
    • Graph를 완성시켜 session.run()하기 전부터도 tensor 및 operation을 실행 가능
    • 일반 IDE 환경에서처럼 중간 과정을 확인할 수 있어 편리
import tensorflow as tf
sess = tf.InteractiveSession()

a = tf.Variable([1.0, 2.0])
b = tf.Variable([2.0, 3.0])
c = tf.Variable([3.0, 4.0])
d = tf.Variable([4.0, 5.0])

# 모든 variables (x, y) 초기화
sess.run(tf.global_variables_initializer())

add = tf.add(a,b)

mult = tf.mul(c,d)

# 처리 중간과정 확인 1
print add.eval()

# 처리 중간과정 확인 2
print mult.eval()

sess.close()

Sung Hah Hwang