Нахождение входных тензоров операции Tensorflow - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь сгенерировать какое-то текстовое представление для вычислительного графа TensorFlow. Я знаю, что Tensorboard может предоставить мне визуализацию. Однако мне нужно какое-то представление (матрица смежности или список смежности), из которого я могу анализировать информацию, связанную с графами.

До сих пор я пробовал следующее:

import tensorflow as tf

a = tf.constant(1.3, name = const_a)
b = tf.constant(3.1, name = const_b)
c = tf.add(a,b, name = 'addition')
d = tf.multiply(c,a, name = 'multiplication')
e = tf.add(d,c, name = 'addition_1')

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

Послепоэтому я решил сохранить объект графа в отдельной переменной и попытался оттуда проанализировать информацию:

graph = tf.get_default_graph()

Я узнал, как получить список всех операций из этой документации.

for op in graph.get_operations():
     print(op.values())

Эта часть фактически предоставляет мне информацию об узлах графа вычислений.

(<tf.Tensor 'const_a:0' shape=() dtype=float32>,)
(<tf.Tensor 'const_b:0' shape=() dtype=float32>,)
(<tf.Tensor 'addition:0' shape=() dtype=float32>,)
(<tf.Tensor 'multiplication:0' shape=() dtype=float32>,)
(<tf.Tensor 'addition_1:0' shape=() dtype=float32>,)

Однако я не могу найти какой-либо метод, который может предоставить мне информациюотносительно ребер вычислительного графа. Я не могу найти метод, который может дать мне входные тензоры, связанные с каждой операцией. Я хотел бы знать, что операция с именем addition_1 имеет входные тензоры, созданные операциями addition и multiplication;, или что-то, что можно использовать для получения этой информации. Из документации кажется, что объект Operation имеет свойство с именем inputs, которое может быть тем, что я ищу. Тем не менее, я не вижу метода, который можно вызвать для возврата этого свойства.

...