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从alphagamma,另一个从gammabeta;看起来更有层次感的东西。可以给我一些提示吗?

这似乎有效 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.

你们没有提供 alphabetagamma 作为彼此的参数。你的意思是改为做这样的事情吗?

composer = Composer().update(a=alpha, b=beta, c=gamma)

或者像这样互相传递函数?

def gamma(alpha, a, b, c):
    return alpha(a, b, c)