본문 바로가기
카테고리 없음

tensorflow reuse 의미

by 블쭌 2021. 3. 18.
728x90
  • 예를 들어서 한 물건에 대해서 10%의 관세를 붙이고 싶다고 가정해보자
  • add tax tensorflow code
def add_tax(price):
    with tf.variable_scope("charges") as scope:
        tax = tf.get_variable("tax", (), dtype=tf.float64,
                              initializer=tf.constant_initializer(0.1))
    total_price = price * (1.0 + tax)
    return total_price
  • 10$하는 책에다가 tax를 부과한 결과
book_price = add_tax(10.0)
init_op = tf.global_variables_initializer()  
with tf.Session() as sess:
    sess.run(init_op)  
    price = sess.run(book_price)
    print("Price of the book: %f" % (price))
    
# Price of the book: 11.000000

 

  • 8$하는 연필에 같은 함수를 사용해 tax를 부과한 결과 

많은 분들이 8.8$를 예상하고 글을 읽고 있을것이라고 생각합니다. 그러나 결과는

pencil_price = add_tax(8.0)
init_op = tf.global_variables_initializer()  
with tf.Session() as sess:
    sess.run(init_op)  
    price = sess.run(pencil_price)
    print("Price of the pencil: %f" % (price))

하지만 아래와 같은 에러가 나올것입니다.

에러를 해석해보면 charges의 tax라는 variable은 이미 존재한다고 나와서 허락되지않는다고 하네요...

그래서 뒤에 또 친절하게 reuse=True를 사용하거나 tf.AUTO_REUSE를 varscope로 선언할때 적으시겠냐고 물어보네요

 

즉, 이미 만들어진 변수를 재사용하고 싶을 경우 reuse를 사용해야한다는 뜻입니다!

한번만 사용할 변수가 아니라면 reuse를 적어주면 편하겠쥬??

728x90

댓글