[텐서플로우 정리] 01. 텐서플로우 화면 출력 함수

텐서플로우가 왜 어려울까?
대부분의 사람들은 텐서플로우가 아니라 머신러닝이 어렵다고 한다.
텐서플로우를 사용하는 방법에 대한 소개는 정말 간략하고,
나머지는 머신러닝에서 텐서플로우가 적용되는 방식에 대해 설명한다.

텐서플로우를 사용하기 위한 기본 개념 일부를 코드로 정리했다.
당연한 것일 수도 있지만, 나는 이것 때문에 머신러닝을 익히는 것이 많이 힘들었다.

텐서플로우를 익히려면 Tensor 객체에 들어간 값의 확인이 첫 번째다.
그런데, 텐서플로우에서는 아직 모르기 때문에 값을 보여주려고 하지 않는다.
이번 줄에서 만든 코드가 어떤 데이터를 갖는지 알아야 다음 줄도 이해할 수가 있는데.. 말이다.

왜 이 생각을 못했는지 모르겠지만, 간단하게 처리할 수 있었다.
아래 함수들을 사용해서 텐서플로우를 공부했는데, 답답한 것 없이 너무 통쾌했다.

아래에는 상수, 변수, 연산자 등의 출력 함수가 있다. 모듈의 이름은 functions.py로 해서 import 해서 사용했다.
너무 간단한 관계로 코드에 대한 설명은 생략한다.
어찌 됐든 이 파일은 이후 나오는 텐서플로우 코드의 기본 코드로 활용된다.

# functions.py

import tensorflow as tf
import functools, operator

def getLength(t):
temp = (dim.value for dim in t.get_shape()) # dim is Dimension class.
return functools.reduce(operator.mul, temp)

def showConstant(t):
sess = tf.InteractiveSession()
print(t.eval())
sess.close()

def showConstantDetail(t):
sess = tf.InteractiveSession()
print(t.eval())
print('shape :', tf.shape(t))
print('size :', tf.size(t))
print('rank :', tf.rank(t))
print(t.get_shape())

sess.close()

def showVariable(v):
sess = tf.InteractiveSession()
v.initializer.run()
print(v.eval())
sess.close()

def var2Numpy(v):
sess = tf.InteractiveSession()
v.initializer.run()
n = v.eval()
sess.close()

return n

def op2Numpy(op):
sess = tf.InteractiveSession()
init = tf.initialize_all_variables()
sess.run(init)
ret = sess.run(op)
sess.close()

return ret

def showOperation(op):
print(op2Numpy(op))