[API] Tensorflow Variables
(텐서플로우 변수)
Note: 함수의 Tensor
인자는 tf.convert_to_tensor
에 의한 것도 가능합니다.
class tf.Variable
class tf.Variable
Variables How To에서 자세한 개요를 확인할 수 있습니다.
변수는 graph에서 run()
의 호출로 상태를 유지합니다. Variable
의 객체를 만들어 graph에 변수를 추가합니다.
Variable()
생성자는 변수의 초기값으로 Tensor
의 type과 shape이 필요합니다. 초기값은 변수의 type과 shape를 정의합니다. 생성 후, 변수의 type과 shape은 고정됩니다. 변수의 값은 assign 메소드를 사용해 변경할 수 있습니다.
후에 변수의 shape를 변경하고 싶다면 assign
에서 validate_shape=False
로 해야합니다.
Tensor
의 경우, Variable()
로 만들어진 변수는 graph의 ops의 input으로 사용될 수 있습니다. 추가적으로, Tensor
클래스로 오버로드 되는 모든 연산(operators)은 변수로 넘겨집니다. 그래서 변수의 산술연산만으로도 graph에 노드를 추가할 수 있습니다.
graph를 실행할 때, 변수는 그 값을 사용하는 ops를 실행하기 전에 명시적으로 초기화해야 합니다. 변수는 1)initializer op를 실행하거나, 2)저장된 파일로부터 변수를 다시 저장(restoring)하거나, 3)간단하게 변수에 값을 할당하는 assign
Op을 실행하여 초기화 할 수 있습니다. 사실, 변수 initializer op는 단지 변수의 초기값을 할당하는 assign
Op 입니다.
가장 일반적인 초기화 방법은 모든 변수를 초기화 할 graph에 편의 함수인 initialize_all_variables()
으로 Op를 추가하는 것 입니다. 그런 다음 graph를 실행한 후 Op를 실행합니다.
다른 변수의 결과로 초기되는 변수를 만들어야한다면, 다른 변수의 initialized_value()
를 사용합니다. 이것은 변수가 올바는 순서로 초기화되도록 합니다.
모든 변수들은 자동적으로 그들이 만들어진 graph에 쌓입니다. 기본적으로, 생성자는 그래프 컬렉션(graph collection) GraphKeys.VARIABLES
에 변수를 추가합니다. 편의 함수인 all_variables()
은 컬렉션의 내용을 반환합니다.
머신 러닝 모델을 만들 때, 학습 가능한 모델 매개변수를 가지고 있는 변수와 global step
변수과 같이 학습 단계를 계산하기 위한 다른 변수로 구분하는 것은 종종 편리합니다. 이것을 더 쉽게 하기위해, 변수 생성자는 trainable=<bool>
매개변수를 지원합니다. True
일 때 새로운 변수는 그래프 컬렉션 GraphKeys.TRAINABLE_VARIABLES
에 추가됩니다. 편의 함수 trainable_variables()
는 이 컬렉션의 내용을 반환합니다. 다양한 Optimizer
클래스는 이 컬렉션을 최적화(optimize) 변수의 기본 리스트로 사용합니다.
Creating a variable.
출처: Variables
이 포스팅은 머신러닝/딥러닝 오픈소스 Tensorflow 개발을 위한 선행학습으로 Tensorflow API Document의 Python API 대한 학습노트입니다.
'머신러닝&딥러닝 개발 > Tensorflow API' 카테고리의 다른 글
[API] Tensorflow Convert to Tensor - Shape and Shaping(텐서플로우 텐서 변환 - 구조 및 구조 변형) (0) | 2018.01.13 |
---|---|
[API] Tensorflow Convert to Tensor - Casting (텐서플로우 텐서 변환 - 형변환) (0) | 2018.01.13 |
[API] Tensorflow Constant, Sequence and Random Seed (텐서플로우 상수, 시퀀스, 그리고 난수) (0) | 2018.01.12 |
[API] Tensorflow Building Graphs (텐서플로우 그래프 생성) (0) | 2018.01.12 |
[API] Tensorflow Interactive Session Utility (0) | 2018.01.12 |