2017-01-25 2 views
1

Tensorflowグラフは、共通の開始点と共通の終了点を持つ2つの並列分岐で構成されているとしましょう。ある時点では、Tensorflowにあるブランチで計算を無効にするように指示したいと思います。言い換えれば、前進と後退を止める。後方パスにはstop_gradient opがあります。しかし、どのように前方のパス、それを無効にするには?これは今実装されていない場合は、私はどのようにそのようなオペレーションを作成することができますヒントを教えてください?私たちは、あなたがこのような何かを行うことができなかった議論からTensorflowのstop_forward_pass

+0

"終了"は両方の並列分岐に依存しますか?もしそうなら、それは不可能です。 – Priyatham

+0

@Priyathamはい、両方に依存していますが、どうしてできないのですか?私は数学的にこれを行う方法を知っているので、これは可能でなければなりません:)おそらく現在、そのような演算はありませんが、それを実装するための問題は何ですか? –

+0

最後はブランチにどのように依存しますか?具体的には、 'out = f(branch1、branch2)' 'f 'とは何ですか? – Priyatham

答えて

2

out = f(branch1, tf.cond(should_disable, lambda: last_branch2_value, lambda: branch2)) 

ここshould_disbalebranch2が計算されているかどうかを決定するboolです。 should_disbaleTrue

ある場合tf.cond()はTensorFlowがないように十分にスマートであることを意味する「微分」であることに注意してください後方branch2通過ん詳細はtf.condためのドキュメントを参照してください。

+0

'bool'がtf乱数ジェネレータと比較演算子で構成されている場合、' tf.cond() 'は微分可能ですか? – Muneeb