2016-11-19 29 views
0

要在構建時改變Tensorflow圖(不是在運行圖時動態顯示),我使用條件分支,如下所示。這是用Tensorflow做這件事的正確方法嗎?Tensorflow條件圖構造

with tf.Graph().as_default()`: 
    ... 
    if a > 1: 
    weightsLayer1 = tf.Variable(tf.truncated_normal([x1,y1]) 
    else: 
    weightsLayer1 = tf.Variable(tf.random_normal([x2,y2]) 

回答

2

是的,你可以使用一般if S,其價值將Python運行過程中進行評估,因此圖表中施工時間,並根據該值,那麼,你的weightsLayer1將獲得該值或其他。

要在圖形執行期間執行條件圖構造,可以使用tf.cond。你這樣使用它:

weightLayer1 = tf.cond(a > 1, lambda: tf.Variable(tf.truncated_normal([x1,y1])), 
           lambda: tf.Variable(tf.random_normal([x2,y2]))) 
1

是的,它是正確的。請注意,只有一個分支將被添加到圖中。如果你想在運行時改變,你可以使用tf.condtf.select