Я пытаюсь сгенерировать какое-то текстовое представление для вычислительного графа 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
, которое может быть тем, что я ищу. Тем не менее, я не вижу метода, который можно вызвать для возврата этого свойства.