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