Azure Zest

[ Tensorflow ] tensor value 확인하기!! 본문

Deep Learning

[ Tensorflow ] tensor value 확인하기!!

LABONG_R 2019. 8. 7. 13:21
tensor 안의 값 확인하기

1. tf.Session 클래스 이용하기

Tensorflow 연산들을 실행하기 위한 클래스인 tf.Session을 이용하는 방법이다. Session 객체는 Operation 객체가 실행되고, Tensor 객체가 계산되는 환경을 보여준다.

따라서 tensor를 보고 싶을 때, 다음과 같이 적어주면 값을 확인할 수 있다.

sess = tf.Session()
value = sess.run(알고 싶은 tensor)
print(value)

조금 시간이 오래 걸릴 수 있긴 하지만, 값을 확인할 수 있는 간편하고 대부분이 알고 있는 방법이다.

다만, 값을 확인할 때마다 세션을 돌려야한다는 단점이 있다.

 

2. tf.enable_eager_execution() 이용하기

다음은 위의 tf.Session을 실행하지 않고, 처음에 프로그램에서 호출을 하고 값을 확인하는 방법이다.

아래처럼 tf.enable_eager_execution()을 import 모듈 아래에 적고 최초로 호출을 해준다.

import tensorflow as tf
tf.enable_eager_execution()

그리고 나서 궁금한 tensor가 생길때마다 print()를 해주면 아래 사진처럼 값을 바로바로 알 수 있다.

세션을 돌리지 않고, 처음 호출 한번으로 바로 값을 알 수 있다는 장점이 있지만 엄청 복잡해서 시간이 오래 걸릴 수 있는 식이 있다면 아예 작용하지 않을 수 있다.

 

또한 주의해야할 점은, 주피터에서 tensorflow만 먼저 import하고 나중에 tf.enable_eager_execution()을 호출했다면, 오류가 생기거나 작동이 되지 않을 수 있다. 

이런 경우에는 주피터 커널을 닫고, 다시 시작하여 처음에 같이 호출을 하면 정상적으로 작동한다.

 

Reference

tensorflow-그래프 실행하기

stackoverflow 질문