는 I 기본적으로 이런 동작 A
으로 연산 그래프를 가지고TensorFlow의 그래프 노드에 부작용이있는 동시 계산을 추가하는 올바른 방법은 무엇입니까?
|
o
|
A
|
o
|
및 I는 텐서 (이 경우 가변 할당) A
흐르는 동안 추가 계산 B
호출하고자 :
|
o
/\
A B
\/
o
|
튜플이 작업을 수행 할 수 있도록 보인다,하지만 난이 그 일을하는 가장 좋은 방법인지 궁금 :
import tensorflow as tf
sess = tf.Session()
v = tf.Variable(0)
sess.run(tf.initialize_all_variables())
A = tf.constant(1)
A, _ = tf.tuple([A, v.assign(2)])
print(sess.run(A)) # prints 1
print(sess.run(v)) # prints 2
가 0
이 모든 것은 순방향 활성화가 통과 할 때 레이어 가중치 및 기타 변수가 업데이트되는 계층 적 계산의 컨텍스트에 있습니다. 대안은 아마 이러한 업데이트를 fwd_update_ops
목록에 축적하고 마지막으로 sess.run([fwd_update_ops, bwd_update_ops], feed_dict)
을 호출하는 것입니다. 다른 대안이 있습니까? 그것을하는 가장 좋은 방법은 무엇입니까? 코멘트에
기본적으로 동시 처리됩니다. 즉 c = a + b는 a와 b eval을 병렬로 가질 것입니다. –
그러나 나는 결코 + b를 계산하지 않습니다. 변수 ('B')에 값을 지정하여 A의 자손을 실행하는 부작용을 원합니다. 'B' 액션이 후손에게 연결되지 않으면'B'가 실행되지 않습니다. 더 명확하게 질문 제목을 업데이트했습니다. –
어쩌면 tf.control_dependencies –