2019.10.23 Update:
🚨DEPRECATED ALERT🚨
Tensorflow가 TF2.0으로 update되었습니다.
이거 보지마세요.
공식 가이드 보세요.

텐서플로우에 대한 자세한 설명은 잘 설명된 문서가 많으니

필수적인 내용만 쏙쏙 찾아볼 수 있도록 텐서플로우를 3분요약 하려고 합니다.

Hello, Tensor World!

import tensorflow as tf

# Create TensorFlow object called hello_constant
hello_constant = tf.constant('Hello World!')

with tf.Session() as sess:
    # Run the tf.constant operation in the session
    output = sess.run(hello_constant)
    print(output)

Session

Tensorflow의 api는 수학적인 process를 시각화하는 computational graph의 아이디어에서 만들어졌습니다. TensorFlow를 실행시키면 다음과 같은 과정을 거쳐 실행됩니다.

session

“TensorFlow Session”이라고 불리는 위 그림은 graph를 실행시키는 환경입니다. session은 remote machine들을 포함한 GPU와 CPU의 자원을 할당하는 역할을 합니다.

# session instance 생성
with tf.Session() as sess:
    # tensor를 evaluate하고 결과를 return.
    output = sess.run(hello_constant)
    print(output)

실행 결과

'Hello World!'

constant

tf.constant()

# A is a 0-dimensional int32 tensor
A = tf.constant(1234)
# B is a 1-dimensional int32 tensor
B = tf.constant([123,456,789])
# C is a 2-dimensional int32 tensor
C = tf.constant([ [123,456,789], [222,333,444] ])

Variable

tf.variable()

x = tf.Variable(5)

####Variable Initializer

tf.global_variables_intiializer()

init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)

Truncated Normal

tf.truncated_normal()

n_features = 120
n_labels = 5
weights = tf.Variable(tf.truncated_normal((n_features, n_labels)))

Zeros

tf.zeros()

n_labels = 5
bias = tf.Variable(tf.zeros(n_labels))

기본 연산

  • 행렬곱 (AB) tf.matmul(A,B)

Softmax

tf.nn.softmax()

softmax 함수는 input (logit, logit scores 이라고도 부른다.)을 ‘납작하게 눌러 (sqashes)’ 라고 불리는 0~1 범위의 값을 가지는 출력을 만들어 낸다. 이 출력은 categorical probability distribution과 같다. 이 함수는 multiple classes에 대한 network의 예측 에 아주 잘 작동한다.

x = tf.nn.softmax([2.0, 1.0, 0.2])

Cross Entropy

cross-entropy-diagram

import tensorflow as tf

softmax_data = [0.7, 0.2, 0.1]
one_hot_data = [1.0, 0.0, 0.0]

softmax = tf.placeholder(tf.float32)
one_hot = tf.placeholder(tf.float32)

# Define cross entropy using feed
cross_entropy = -tf.reduce_sum(tf.multiply(one_hot, tf.log(softmax)))

# Print cross entropy from session
with tf.Session() as sess:
    output = sess.run(cross_entropy, feed_dict={softmax:softmax_data, one_hot:one_hot_data})
    print(output)

Comments

Eungbean Lee's Picture

About Eungbean Lee

Lee is a Student, Programmer, Engineer, Designer and a DJ

Seoul, South Korea https://eungbean.github.io