Tensorflow2016. 10. 23. 17:04


Tensorflow에서 Matrix 연산에 대해서 알아보겠습니다.


많은 데이터를 처리하기 위해서는 대부분의 경우에 데이터가 다차원의 Matrix로 구성이 됩니다.

이를 한번에 빠르게 연산을 하기 위해서는 Matrix 연산을 잘 다루어야 합니다.


Tensorflow에서 기본적으로 제공해주는 연산 함수들에 대해서 알아보겠습니다.



1. 덧셈 : tf.add()


import tensorflow as tf

x = tf.Variable([[2, 2, 2],[2, 2, 2]])
y = tf.Variable([[3, 3, 3],[3, 3, 3]])
z = tf.add(x, y)

init_op = tf.initialize_all_variables()

sess = tf.Session()
sess.run(init_op)
print(sess.run(z))

>[[5 5 5]

  [5 5 5]]




2. 뺄셈 : tf.sub()


import tensorflow as tf

x = tf.Variable([[2, 2, 2],[2, 2, 2]])
y = tf.Variable([[3, 3, 3],[3, 3, 3]])
z = tf.sub(x, y)

init_op = tf.initialize_all_variables()

sess = tf.Session()
sess.run(init_op)
print(sess.run(z))

>[[-1 -1 -1]

  [-1 -1 -1]]




3. 곱하기 : tf.mul()


element 끼리의 단순한 곱하기 결과입니다.

import tensorflow as tf

x = tf.Variable([[2, 2, 2],[2, 2, 2]])
y = tf.Variable([[3, 3, 3],[3, 3, 3]])
z = tf.mul(x, y)

init_op = tf.initialize_all_variables()

sess = tf.Session()
sess.run(init_op)
print(sess.run(z))

>[[6 6 6]

 [6 6 6]]




4. Matrix 곱하기 : tf.matmul()


Matrix 끼리의 곱하기를 수행하기 위해서 곱하기가 수행되는 Matrix의 크기를 맞춰주기 위해서 transpose를 해주어 연산을 해야 합니다. 만약 두 matrix의 크기( 2x3 * 3x2 )가 맞지 않으면 연산에 실패하고 오류 메세지가 발생하게 됩니다.

import tensorflow as tf

x = tf.Variable([[2, 2, 2],[2, 2, 2]])
y = tf.Variable([[3, 3, 3],[3, 3, 3]])
z = tf.matmul(x,tf.transpose(y))

init_op = tf.initialize_all_variables()

sess = tf.Session()
sess.run(init_op)
print(sess.run(z))

>[[18 18]

  [18 18]]




5. 3제곱 승수 : tf.pow()


import tensorflow as tf

x = tf.Variable([[2, 2, 2],[2, 2, 2]])
z = tf.pow(x, 3)

init_op = tf.initialize_all_variables()

sess = tf.Session()
sess.run(init_op)
print(sess.run(z))

>[[8 8 8]

  [8 8 8]]




6. 지수값 : tf.exp()


실수 값만 지수값으로 연산이 됩니다. 정수일 경우에는 오류가 발생하게 됩니다.


import tensorflow as tf

x = tf.Variable([[2., 2., 2.],[2., 2., 2.]])
z = tf.exp(x)

init_op = tf.initialize_all_variables()

sess = tf.Session()
sess.run(init_op)
print(sess.run(z))

>[[ 7.38905621  7.38905621  7.38905621]

 [ 7.38905621  7.38905621  7.38905621]]




7. log 값 : tf.log()


import tensorflow as tf

x = tf.Variable([[2., 2., 2.],[2., 2., 2.]])
z = tf.log(x)

init_op = tf.initialize_all_variables()

sess = tf.Session()
sess.run(init_op)
print(sess.run(z))

>[[ 0.69314718  0.69314718  0.69314718]

  [ 0.69314718  0.69314718  0.69314718]]









Posted by 대소니

댓글을 달아 주세요