2016-11-19 4 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의를 사용하고 값에 따라, 당신의 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.cond 또는 tf.select을 사용할 수 있습니다.

관련 문제