TensorFlow 모듈응용 Computational Graph 덧셈 연산에서 placeholder 란?

codingart(66)
Published in
#kr
Words
196
Reading
1 min
Listen
Play
8y

noname03.png

지금까지 올렸던 머신러닝 블로그를 모아서 곧 출판에 들어갈 계획입니다. 혹 빠진 내용이 없을까? 체크해 보니 MNIST 문제를 다룸에 있어 자주 나오는 placeholder 사용법이 있는데 이미 필자의 블로그에서 한번 거론했던 내용이라 이 코딩 작업일지 책에서는 빠진 부분인데 혹 초보자분들이 당황하지 않도록 다시 한번 언급 차원에서 포스팅 해둡니다.

noname01.png

Tensorflow 모듈을 이용하여 2개의 상수인 숫자를 더하는 코드를 작성하였다. 여기에서 좀 더 나아가 2개의 placeholder를 도입하여 노드들을 설정하고 연산을 정의한 후 Session 작업 단계에서 placeholder에 값을 입력해주는 TensorFlow 코드를 작성해 보기로 한다.

placehoder 란 말 그대로 메모리에 속성을 부여한 자리만 잡아 Computational Graph 단계에서 알고리듬을 구현해 본 후 실행 단계에서 값을 입력해 주는 역할을 한다.

초기 노드 설정 단계에서 2개의 placeholder를 설정하고 이 2개의 placeholder를 더하는 연산을 정의하도록 한다. Session 실행 단계에서 feed_dict={⚫⚫⚫}를 사용하여 데이터 값을 입력하도록 한다.

반면에 코드 내에서 학습용 데이터, 테스트용 데이터 및 정밀도 확인용 데이터를 되풀이 하여 실행하는 머신러닝 코드에서는 초기에 placeholder 로 정의한 후 sess.run() 단계에서 매번 데이터만 갱신해 주면 되는 편리함이 있다.

즉 session.run 이전 단계에서는 노드와 엣지로 구성되는 일고리듬 구현을 위한 computational graph 를 형성 후 session.run 을 실행하게 된다. 즉 Graph 와 실행 단계로 구분된다는 의미이다.

noname02.png

placeholder 의 경우는 Graph에서 반드시 사전 설정해 두어야 알고리듬 그래프가 완성되면 구체적인 실행은 session.run에서 이루어지게 된다.

http://blog.daum.net/ejleep1/529

TensorFlow 모듈응용 Computational Graph 덧셈 연산에서 placeholder 란? | Ecency