Graphviz 不绘制所有依赖项
Graphviz doesn't draw all dependencies
我在 NumPy (v1.19.5) 中使用 Python (v3.9.10) 编写神经网络,并想使用 GraphViz(v latest) 为 JupyterLab (v3) 绘制所有依赖关系图.2.8).就像在 ML 论文中看到的一样!但是,我在显示所有功能依赖项时遇到问题。我的输出图有宽度但没有深度,我想知道如何解决这个问题。我认为这可能是由于 for
循环,但我更愿意了解一些更一般的东西。
MWE:
from fn_graph import Composer
import pygraphviz
def alpha(a, b, c):
empty_list = []
q = []
for j in range(len(a)):
q.append(f2(a, b, c))
return q, empty_list
def beta(a, b, c):
p = gamma(a, b, c)
return a + b, p
def gamma(a, b, c):
return alpha(a, b, c)
composer5 = Composer().update(alpha, beta, gamma)
composer5.graphviz()
输出:
预期输出:
一个link从alpha
到gamma
,另一个从gamma
到beta
;看起来更有层次感的东西。可以给我一些提示吗?
这似乎有效 as designed:
That principle idea behind Fn Graph is to use the names of a functions arguments to find that functions dependencies, and hence wire up the graph.
你们没有提供 alpha
、beta
或 gamma
作为彼此的参数。你的意思是改为做这样的事情吗?
composer = Composer().update(a=alpha, b=beta, c=gamma)
或者像这样互相传递函数?
def gamma(alpha, a, b, c):
return alpha(a, b, c)
我在 NumPy (v1.19.5) 中使用 Python (v3.9.10) 编写神经网络,并想使用 GraphViz(v latest) 为 JupyterLab (v3) 绘制所有依赖关系图.2.8).就像在 ML 论文中看到的一样!但是,我在显示所有功能依赖项时遇到问题。我的输出图有宽度但没有深度,我想知道如何解决这个问题。我认为这可能是由于 for
循环,但我更愿意了解一些更一般的东西。
MWE:
from fn_graph import Composer
import pygraphviz
def alpha(a, b, c):
empty_list = []
q = []
for j in range(len(a)):
q.append(f2(a, b, c))
return q, empty_list
def beta(a, b, c):
p = gamma(a, b, c)
return a + b, p
def gamma(a, b, c):
return alpha(a, b, c)
composer5 = Composer().update(alpha, beta, gamma)
composer5.graphviz()
输出:
预期输出:
一个link从alpha
到gamma
,另一个从gamma
到beta
;看起来更有层次感的东西。可以给我一些提示吗?
这似乎有效 as designed:
That principle idea behind Fn Graph is to use the names of a functions arguments to find that functions dependencies, and hence wire up the graph.
你们没有提供 alpha
、beta
或 gamma
作为彼此的参数。你的意思是改为做这样的事情吗?
composer = Composer().update(a=alpha, b=beta, c=gamma)
或者像这样互相传递函数?
def gamma(alpha, a, b, c):
return alpha(a, b, c)