ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 변수와 상수
    NAN/머신 러닝 2021. 7. 8. 22:45
    728x90

     

    변수와 상수


    상수 constant

     

     

    상수는 constant() 함수를 이용해 정의할 수 있다. 상수는 변하지 않는 숫자를 의미한다.

     

    자세한 사항은 아래 코드와 함께 살펴보자

     

    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()
    
    a = tf.constant(1)
    b = tf.constant(2)
    c = tf.add(a, b)
    sess = tf.Session()
    sess.run(c)
    
    3

     

    a라는 변수에 constant() 상수 함수를 이용해 하나의 수를 입력하게 되면

     

    이는 곧 배열과 같이 취급되어 고정된 값을 가지게 된다. 

     

    텐서플로우의 경우 특정 식을 만들게 되면, 이를 실제로 사용하기 위해서는 하나의 흐름 즉 Session()이 필요하다.

     

    Session()까지 만들었다면 세션 객체가 하나의 연산식을 수행할 수 있도록. run()을 통해 실행시켜준다.

     

    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()
    
    a = tf.constant(1)
    b = tf.constant(2)
    c = tf.add(a, b)
    sess = tf.Session()
    
    print(c)
    
    Tensor("Add_4:0", shape=(), dtype=int32)

     

    여기서 만약 sess.run(c)가 아닌 일반 print() 함수를 사용하게 되면 예시와 같은 구문이 출력되는데

     

    이는 c 가 텐서 플로우의 객체로 특정 배열을 가지고 있는 자료형이고, Session을 통해 연산을 수행하여야 하기 때문이다.

     

    즉, Session()에 담지 않은 자료는 어떠한 의미도 가지지 않은 식만 존재하는 형태라는 의미이다.

     

     

    변수 Variable 

     

     

    변수를 직역하면 변경될 수 있는 값이라는 뜻을 가지고 있다.

     

    변수는 tf.global_variables_initializer()라는 함수를 제외하면 상수와 매우 흡사한 구조를 가지고 있다.

     

    import tensorflow.compat.v1 as tf
    tf.disable_v2_behavior()
    
    a = tf.Variable(5)
    b = tf.Variable(3)
    c = tf.multiply(a,b)
    init = tf.global_variables_initializer()
    sess = tf.Session()
    sess.run(init)
    sess.run(c)
    
    15

     

    상수와 마찬가지로 a, b에 변수를 의미하는 Variable()을 적용하여 간단한 곱셈식을 만들었다.

     

    이렇게 변수를 지정하였다면 tf.global_variables_initializer()라는 함수를 통해 실제로 텐서 플로우에 적용하여 

     

    초기화해주는 과정을 반드시 거쳐야 한다.

     

    a = tf.Variable(15)
    sess.run(c)
    
    15

     

    처음 변수에 대해 설명할 때 변수란 변할 수 있는 값이라고 표현했지만 위의 예시에서 a값을 변경해도

     

    출력되는 값이 변하지 않은걸 확인했는데,

     

    그 이유는 텐서 플로우는 이름 그대로 흐름을 중요시하는 라이브러리이기 때문이다.

     

    만약 텐서 플로우를 사용하고 변수를 조정하고자 한다면 아래와 같이 그 흐름을 다시 재정리해줄 필요가 있다. 

     

    a = tf.Variable(15)
    c = tf.multiply(a,b)
    init = tf.global_variables_initializer()
    sess.run(init)
    sess.run(c)
    
    45

     

     


     

     

    https://www.youtube.com/watch?v=4hnzae4vZPA&list=PLRx0vPvlEmdAbnmLH9yh03cw9UQU_o7PO&index=7 

     

    'NAN > 머신 러닝' 카테고리의 다른 글

    Function  (0) 2021.07.08
    Placeholder  (0) 2021.07.08
    비용 (cost)  (0) 2021.07.08
    선형 회귀 (Linear Regression)  (0) 2021.07.08
    군집  (0) 2021.07.08
Designed by Tistory.