-1
我喜歡在Tensorflow的每個時代交換Ops。目前我通過使用防止在張量流中對Op進行評估
control_flow_ops.cond(tf.less(epoch, float()), op1, op2)
但是,看起來未使用的Ops仍在評估中,這顯着降低了訓練過程的速度。有沒有辦法減少這種開銷?
我喜歡在Tensorflow的每個時代交換Ops。目前我通過使用防止在張量流中對Op進行評估
control_flow_ops.cond(tf.less(epoch, float()), op1, op2)
但是,看起來未使用的Ops仍在評估中,這顯着降低了訓練過程的速度。有沒有辦法減少這種開銷?
的control_flow_ops.cond(tf.less(epoch, float()), op1, op2)
看成是Python的a if f(x) else b
其中a
和b
是變量的等效。在點a
和b
已經存儲了一些值,因此兩個分支都被評估。您需要執行create_op1()
而不是op1
來評估一個分支。在mrry的帖子中的更多細節here
請參閱:https://www.tensorflow.org/versions/r0.11/api_docs/python/control_flow_ops.html#cond – mdaoust