# import tensorflow
import tensorflow as tf


# variables

# 1. constant
a = tf.constant(5.0)

# 2. matrix
matrix1 = tf.constant([[3., 3.]]) # Create a Constant op that produces a 1x2 matrix
matrix2 = tf.constant([[2.],[2.]]) # Create another Constant that produces a 2x1 matrix.

# 3. else
tf.zeros(shape, dtype = , name = )
tf.ones(shape, dtype = , name = )
tf.random_normal(shape, mean = , stddev = , dtype = , seed = , name = )
tf.truncated_normal(shape, mean = , stddev = , dtype = , seed = , name = )
tf.random_uniform(shape, minval = , maxval = , dtype = , seed = , name = )
tf.random_shuffle(value, seed = , name = )

tf.Variable()

# i.e.
zeros = tf.Variable( tf.zeros( ~ ) )
 

# Example
# --------------------------------------------------------------
# Build a graph.
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b

# Launch the graph in a session.
sess = tf.Session()

# Evaluate the tensor `c`.
print(sess.run(c))

# ---------------------------------------------------------------
# Create a Constant op that produces a 1x2 matrix.  The op is
# added as a node to the default graph.
#
# The value returned by the constructor represents the output
# of the Constant op.
matrix1 = tf.constant([[3., 3.]])

# Create another Constant that produces a 2x1 matrix.
matrix2 = tf.constant([[2.],[2.]])

tmp1 = tf.matmul(matrix1, matrix2)
tmp2 = tf.matmul(matrix2, matrix1)

sess = tf.Session()
print(sess.run(tmp1))
print(sess.run(tmp2))
# --------------------------------------------------------------------



# Functions

tf.add 덧셈
tf.sub 뺄셈

tf.mul 곱셈
tf.div 나눗셈의 몫
tf.mod 나눗셈의 나머지
tf.abs 절대값을 리턴합니다.
tf.neg 음수를 리턴합니다.
tf.sign 부호를 리턴합니다.(역주: 음수는 -1, 양수는 1, 0 일땐 0을 리턴합니다)
tf.inv 역수를 리턴합니다.(역주: 3의 역수는 1/3 입니다)
tf.square 제곱을 계산합니다.
tf.round 반올림 값을 리턴합니다.
tf.sqrt 제곱근을 계산합니다.
tf.pow 거듭제곱 값을 계산합니다.
tf.exp 지수 값을 계산합니다.
tf.log 로그 값을 계산합니다.
tf.maximum 최대값을 리턴합니다.
tf.minimum 최소값을 리턴합니다.
tf.cos 코사인 함수 값을 계산합니다.
tf.sin 사인 함수 값을 계산합니다.

tf.diag 대각행렬을 리턴합니다.
tf.transpose 전치행렬을 리턴합니다.
tf.matmul 두 텐서를 행렬곱셈하여 결과 텐서를 리턴합니다.\

tf.matrix_determinant 정방행렬의 행렬식 값을 리턴합니다.
tf.matrix_inverse 정방행렬의 역행렬을 리턴합니다.




tf.shape 텐서의 구조를 알아냅니다.
tf.size 텐서의 크기를 알아냅니다.
tf.rank 텐서의 랭크를 알아냅니다.
tf.reshape 텐서의 엘리먼트(element)는 그대로 유지하면서 텐서의 구조를 바꿉니다.
tf.squeeze 텐서에서 크기가 1인 차원을 삭제합니다.
tf.expand_dims 텐서에 차원을 추가합니다.
tf.slice 텐서의 일부분을 삭제합니다.
tf.split 텐서를 한 차원을 기준으로 여러개의 텐서로 나눕니다.
tf.tile 한 텐서를 여러번 중복으로 늘려 새 텐서를 만듭니다.
tf.concat 한 차원을 기준으로 텐서를 이어 붙입니다.

tf.reverse 텐서의 지정된 차원을 역전시킵니다.
tf.transpose 텐서를 전치(transpose)시킵니다.
tf.gather 주어진 인덱스에 따라 텐서의 엘리먼트를 모읍니다.





https://tensorflowkorea.wordpress.com/1-%ED%85%90%EC%84%9C%ED%94%8C%EB%A1%9C%EC%9A%B0-%EA%B8%B0%EB%B3%B8%EB%8B%A4%EC%A7%80%EA%B8%B0-first-contact-with-tensorflow/

https://tensorflowkorea.wordpress.com/3-%ED%85%90%EC%84%9C%ED%94%8C%EB%A1%9C%EC%9A%B0-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81-first-contact-with-tensorflow/

+ Recent posts