Tensorflow에서 그래프 정의 블록 내의 명령문은 훈련 중 실행되는 그래프를 작성하기 위해서만 실행됩니까? 예를 들어 : 그들은 무게와 편견을 초기화 이후Tensorflow : 그래프 작성 후 실행되는 그래프 문은 무엇입니까?
with tf.Graph().as_default():
weightsLayer1 = tf.Variable(tf.truncated_normal([nInputUnits, nOutputUnits]))
weightsLayer1 = tf.div(weightsLayer1, tf.sqrt(tf.to_float(nInputUnits)))
biasesLayer1 = tf.Variable(tf.zeros([nUnitsHiddenLayer1]))
layer1output = tf.tanh(tf.matmul(images_placeholder, weightsLayer1) + biasesLayer1)
직관적으로, 선이 weightsLayer1
및 biasesLayer1
정의 I는 시작시에만 한 번 실행 가정합니다. 그러나 라인 계산 layer1output
layer1output
은 손실을 계산하기 위해 다운 스트림에 사용되므로 최적화 단계에서 최소화되므로 모든 교육 단계에서 실행됩니다. 그렇다면 Tensorflow는 훈련 중 이전 줄을 실행하지 않고 마지막 줄만 실행하는 것을 어떻게 알 수 있습니까? (이것은 가중치와 편향을 다시 초기화 할 것입니다)?
위의 모든 설명은 그래프를 작성하는 데 사용되며 훈련 중에는 열차 운전으로 이어지는 경로 만 실행됩니다. 초기화는 한 번만 발생합니다. 즉, 두 번째 명령문 tf.div가 열차 시간에 실행됩니다. – shekkizh