안녕하세요. 위기의 코딩맨입니다.
오늘은 TensorFlow 에서 중요한 변수 선언과 Session에 대해서 알아보도록 하겠습니다.
[변수,상수 선언]
두가지 방법이 있는데 변수텐서, 상수텐서로 생각하시면 될 것같습니다.
변수는 갱신이 가능하지만, 상수는 변하지 않는 값을 선언하는 것입니다.
* tf.variable - 변수 텐서 (업데이트가 가능한 객체)
* tf.constant - 상수 텐서 (업데이트 불가능한 객체)
그냥 숫자를 넣어서 수를 선언할 수 있지만, 행렬을 넣어 행렬 텐서를 생성할 수 있습니다.
tf.Variable(tf.ones((2,2)))
선언이 가능하다.
그러나 상수로는 선언이 불가능하다.
[Session()]
간단하게 얘기하면 TensorFlow에서 수행되는 계산 문맥을 하나로 묶는다고 생각하면 될 것 같습니다.
그러나 TensorFlow의 버전마다 사용 방법이 다릅니다.
1.x 버전에서는 Session을 호출해서 사용해야하지만
2x 버전에서는 Session이 내장되어 있어 바로 사용이 가능합니다.
저는 1.x 버전으로 작업을 진행했습니다.
또한 사용법도 여러가지가 존재합니다.
a = tf.constant(5)
b = tf.constant(1)
c = tf.add(a, b)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(c))
sess.close()
위 코드는 a,b 에 5,1의 변수를 넣어주고
c는 두 a,b를 더하는 작업을 선언해 주었습니다.
먼저 Session()을 선언하고, 실행 전 모든 변수를 초기화 해주는 global_variables_initializer()로 초기화를 진행해 주고,
Session안에 c 작업을 실행하도록 선언합니다.
그리고 마무리로 Session을 닫아주어야 합니다.
또다른 예제로는
with tf.Session() as sess:
a = tf.constant(1)
b = tf.constant(2)
c = tf.add(a,b)
sess.run(c)
print( sess.run(c) )
위 코드는 첫번째 예제랑 다른점은 with으로 묶은 방법인데
이 예제는 Session 초기화, 종료가 내장되어 있어 직접 선언을 해주지 않아도 된다는 장점이 있습니다.
오늘은 변수선언과 Session에 대해 알아봤습니다.
기초적인 사용법으로 조금 더 흥미를 느껴가고 있습니다.
앞으로도 흥미를 느껴야 할텐데
'Python > Tensorflow' 카테고리의 다른 글
[We-Co] Softmax Regression, Cross-Entropy, One-Hot-Encoding - TensorFlow (0) | 2021.09.27 |
---|---|
[We-Co] 선형회귀 숫자 예측 - TensorFlow Linear Regression (0) | 2021.09.27 |
[We-Co] random_normal(), random_uniform() 난수텐서 초기화 (0) | 2021.07.22 |
[We-Co] zeros, ones, fill 상수텐서 초기화 (0) | 2021.07.21 |
[We-Co] TensorFlow Linspace (0) | 2021.07.18 |