컴공생의 다이어리
텐서플로우(Tensorflow) 변수와 상수 본문
텐서플로우에서는 변수와 상수 기능을 제공한다.
상수
상수는 변하지 않는 숫자를 의미하며 텐서플로우에서는 constant() 함수를 이용해서 정의할 수 있다.
In [1]:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
a = tf.constant(1) #1이라는 원소를 가지고 있는 하나의 배열을 만들어서 a에 넣어줬다.
b = tf.constant(2) #2라는 원소를 가지고 있는 하나의 배열을 만들어서 b에 넣어줬다.
c = tf.add(a,b) #a와 b를 더한 그 tensor의 값을 담아줌
sess = tf.Session() #하나의 session 객체 생성
sess.run(c) #session 객체 실행
Out[1]:
3
위의 코드를 실행해보면 3이라는 결과가 출력된다. 텐서플로우는 텐서와 플로우를 적절히 사용하는 시술로 플로우 그래프와 같이 프로그램이 구성된다. 따라서 실제로 프로그램의 동작은 session을 생성하여 동작(run)시키는 방법으로 작동한다.
변수
변수는 변경될 수 있는 값을 의미하며 텐서플로우에서는 Variable() 함수를 이용해서 정의할 수 있다.
In [1]:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
a = tf.Variable(5)
b = tf.Variable(4)
c = tf.multiply(a,b) #a와 b를 곱한 그 tensor의 값을 담아줌
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
sess.run(c)
Out[1]:
20
In [2]:
a = tf.Variable(10)
c = tf.multiply(a, b)
init = tf.global_variables_initializer() #변수 값이 변경되었으면 다시 초기화 해야함
sess.run(init)
sess.run(c)
Out[2]:
40
기본적으로 위와 같이 global_variablese_initializer() 함수를 사용해서 변수를 초기화하여 계산해 줄 수 있도록 한다. 변수 초기화 부분이 없으면 오류가 발생한다. 변수를 중간에 변경해도 다시 초기화를 꼭 해주어야 한다.
728x90
'데이터 분석 & 머신러닝' 카테고리의 다른 글
Kaggle(캐글)의 Titanic(타이타닉) 생존자 예측에 사용된 머신러닝 모델 정리 (0) | 2021.02.05 |
---|---|
Kaggle(캐글) Titanic(타이타닉) 생존자 예측 (0) | 2021.02.04 |
텐서플로우(Tensorflow)란? (0) | 2021.01.14 |
선형 회귀 인공지능 구현해보기 (0) | 2021.01.13 |
비용 함수(Cost Function) (0) | 2021.01.13 |
Comments