텐서플로우 기본

2018. 12. 10. 00:32ML, OpenCV

tf.constant 함수

상수텐서를 만들때 사용하는 함수이다.


a = tf.constant(np.arange(6).reshape(2,3)) 

이런식으로 값을 넣어줄 때 사용한다.


tf.reduce_sum()함수


b = tf.reduce_sum(a)

c = tf.reduce_sum(a, axis = 0)

d = tf.reduce_sum(a, axis = 1)


행렬값을 더해주는 함수이다. 


sess = tf.Session()

print("a =",sess.run(a))

print("b =",sess.run(b))

print("c =",sess.run(c))

print("d =",sess.run(d))

sess.close()


세션을 열고 값을 출력한다.

a = [[0 1 2]

 [3 4 5]]

b = 15

c = [3 5 7]  #열을 기준으로 더한 값

d = [ 3 12]  #행을 기준으로 더한 값


tf.reduce_mean()함수도 비슷하다.

이 함수는 행렬의 평균을 구하는 함수이다.


a = tf.constant(np.arange(6).reshape(2,3),dtype=tf.float32) #tf.reduce_mean

b = tf.reduce_mean(a)

c = tf.reduce_mean(a, axis = 0)

d = tf.reduce_mean(a, axis = 1)


sess = tf.Session()

print("a =",sess.run(a))

print("b =",sess.run(b))

print("c =",sess.run(c))

print("d =",sess.run(d))

sess.close()


출력값은 아래와 같다

a = [[0. 1. 2.]

 [3. 4. 5.]]

b = 2.5

c = [1.5 2.5 3.5]    #열을 기준으로 평균을 낸 값

d = [1. 4.]  #행을 기준으로 평균을 낸 값



tf.matrix_inverse() 함수와 tf.matmul() 함수


tf.matrix_inverse() 함수는 역행렬을 구해주는 함수이고


tf.matmul() 함수는 행렬곱을 해주는 함수이다.


A = tf.constant(np.array([[1,0,0],[-1,2,3],[0,1,2]]),

                dtype = tf.float32)

inv_A = tf.matrix_inverse(A) #tf.linalg.inv(A)

B = tf.matmul(A,inv_A)  #B = A * inv_A


sess = tf.Session()

print(sess.run(A))

print(sess.run(inv_A))

print(sess.run(B))

sess.close()


출력값

[[ 1.  0.  0.]

 [-1.  2.  3.]

 [ 0.  1.  2.]]

[[ 1.  0.  0.]

 [ 2.  2. -3.]

 [-1. -1.  2.]]

[[1. 0. 0.]

 [0. 1. 0.]

 [0. 0. 1.]]



tf.linspace() 함수는 균일한 간격으로 나누는 함수이다.


tf.range()와 비슷하다고 볼 수 있다.

이 함수는 정해준 간격만큼 값이 증가하는 함수이다.

a = tf.linspace(0.0, 1.0, 5)

b = tf.range(5)

c = tf.range(1,5)

d = tf.range(1, 5, 0.5)


sess = tf.Session()

print("a =",sess.run(a))

print("b =",sess.run(b))

print("c =",sess.run(c))

print("d =",sess.run(d))

sess.close()


출력값

a = [0.   0.25 0.5  0.75 1.  ]

b = [0 1 2 3 4]

c = [1 2 3 4]

d = [1.  1.5 2.  2.5 3.  3.5 4.  4.5]


tf.random_shuffle()함수는 값을 섞어주고

tf.Variable() 함수는 변수를 만드는데 사용한다.


a = tf.range(1,5)

b = tf.random_shuffle(a)

x = tf.Variable(a) #변수에 a 넣기


sess = tf.Session()

print("a = ",sess.run(a))

print("b = ",sess.run(b))

sess.run(tf.global_variables_initializer())

print("x =", sess.run(x))

sess.close()


텐서플로우에서 변수를 사용하기 위해서는 초기화해줘야한다.

tf.global_variables_initializer() 로 모든 변수를 초기화 해줄 수 있다.


출력값

a =  [1 2 3 4]

b =  [1 4 2 3]

x = [1 2 3 4]