from theano import tensor as T
from theano import shared
state = shared(0)
inc = T.iscalar()
accumulator = function([inc],state,update=[(state,state+inc)])
---------------------------------------------------------------------------
여기서 이 shared value 는 전역 변수라고 생각하면 된다.
이 변수를 사용하는 모든 함수는 이 값을 공유하게 된다.
이 값은 접근을 아래와 같이 한다.
The value can be accessed and modified by the
.get_value()
and .set_value()
method---------------------------------------------------------------------------
여기서 update 는 어떤 형태(form)의 페어에 적용이 된다.
즉, state.value 를 state_inc로 바꾼다 라는 의미가 된다.
===============================================
이 코드의 의미를 살펴보자.
state 는 shared 변수
inc는 일반적인 변수이다.
accumulator 는 input 으로 inc변수 (iscalar) 를 가지고, output으로는 stsate 를 내보낸다.
그리고 이 함수는 state를 state+inc로 바꾸는 동작을 가진 함수이다.
따라서 accumulator(K) 를 실행하면,output으로 stsate를 출력후 state 를 stsate_inc로 바꾼다.
** update 를 쓰는 이유.
1.가끔 더 속도가 빠름.
2. 언제 업데이트 되는지 추적을 편하게 하기 위해.
3. shared variable를 사용을 안하는데, 업데이트는 해야될떄
댓글 없음:
댓글 쓰기