Порядок оценки узлов графа TensorFlow - PullRequest
0 голосов
/ 27 апреля 2018

Если узлы A, B и C графа TensorFlow зависят от узла D, тогда sess.run([A,B,C,D]) оценит D только один раз и использует его для вычисления A, B и C?

1 Ответ

0 голосов
/ 27 апреля 2018

Да, именно так. Обратите внимание, что в противном случае порядок операций не определен, поэтому сначала будет вычисляться D, но если A, B и C не зависят друг от друга, порядок их вычисления не определен.

Но отдельный sess.run() вызов будет пересчитать d. Рассмотрим этот код:

import tensorflow as tf

d = tf.random_uniform( shape = () )
a = d + 10.0
b = d + 20.0
c = d + 30.0

with tf.Session() as sess:
    print( sess.run( [ a, b, c, d ] ) )
    print( sess.run( [ a, b, c, d ] ) )

Выходы:

[10,559408, 20,559408, 30,559408, 0,55940783]
[10.313643, 20.313644, 30.313644, 0.3136438]

Как видите, каждая строка имеет одинаковые десятичные дроби от генератора случайных чисел d , но две строки разные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...