ecsimsw

Placeholder / Variable 본문

Placeholder / Variable

JinHwan Kim 2019. 3. 17. 10:50

Placeholder / Variable

- 텐서플로우를 공부하면서 Placeholder / Variable를 좀 더 명확하게 하고 싶어 공부하였다.
  • placeholder
    - placeholder는 다른 텐서를 할당하기 위해 사용되는 변수 타입이다. 한마디로 함수에서 파라미터 같은 친구이다. 잘 와닿지 않을 수 도 있는데, 나한테는 가장 쉬운 예시였다.
      예를들어, 어떤 값에 3을 더한 값을 리턴하는 함수를 만든다고 생각해보자

      위 그림에서 빨간색으로 표신되어 입력을 받는, 즉 파라미터의 역할을 하는 노드가 바로 placeholder가 하는 역할이다.
      나머지 설계와 학습에 입력될 데이터를 placeholder로 구분하므로써 입력에 대한 출력을 확인하거나 코드 자체에서 입력 데이터를 명확하게 할 수 있다는 장점을 갖는다.
    tf.placeholder(dtype,shape=None,name=None)
      placeholder가 전달하는 파라미터는 위와 같은데 dtype은 저장되는 데이터의 타입을 결정하는 반드시 필요로하는 정보다. shape는 배열의 차원을 정의한다.
    result = sess.run(ret_val, feed_dict = {x_holder : val1, y_holder: val2, z_holder: val3})
      프로그램 실행 전에 위처럼 feed_dict로 비어있는 placeholder에 다른 변수나 값을 대입한다.
  • Variable
    - Variable은 다른 언어와 살짝 다른 변수이다. 이름 그대로 런타임 중 '변하는 수'이다. 학습을 위해 변하는 값을 선언할 때 사용하는 타입으로 역시 내가 편한 예시는 여러 좌표 데이터로 가장 합리적인 직선 y=Wx+b의 그래프를 그릴 때, 학습에 의해 결정되면서 그 값이 계속 변하는 W와 b와 같은 변수를 Variable로 선언한다.
    W = tf.Variable(tf.random_normal([1])) b = tf.Variable(tf.random_normal([1]))
      위처럼 초기에 잘모르는 변수의 값을 랜덤으로 우선 대입하고 학습을 진행할 수 록 더 합리적인 값으로 변경된다.

'Machine Learning > Tensorflow' 카테고리의 다른 글

Processing devices  (0) 2019.03.19
Tensorflow architecture  (0) 2019.03.18
Multi-variable / Matrix  (0) 2019.03.16
Linear Regression / Gradient descent algorithm  (0) 2019.03.16
Data flow graph  (0) 2019.03.16
Comments