在Python中,是否有一种使用networkx以标准格式显示神经网络的方法?

3

所谓“标准格式”,是指将输入和输出节点分别放在自己的单独行中,而将其他所有隐藏节点都放在它们之间。如下图所示,我的输入节点是0、1和2,输出节点是3,隐藏节点是4和5。这是我能得到的最好看的网络图。我试图避免使用Keras,因为在Anaconda中尝试让它起作用一直是个大问题。

我相信,如果我知道用于显示神经网络的“标准格式”图形的名称,那么这将会更容易。

请告诉我是否有我错过的用于执行此任务的包。

以下是我现在显示网络的方法:

图形的代码:

import networkx as nx

G = nx.MultiDiGraph()
ed = N2.dna.get_conns(weight=True)

G.add_weighted_edges_from(ed)
nx.draw_planar(G,with_labels=True,font_weight='bold')


ed
Out[32]: 
[[0, 3, -1],
 [1, 3, -1],
 [2, 3, -1],
 [0, 4, -1],
 [4, 5, -1],
 [5, 3, 100],
 [2, 4, 10]]

1
展示你的代码来处理这个有向图。 - K.Maj
抱歉,现在已经更新了代码。 - Nbishop
1个回答

4

希望我理解得正确。

可能的解决方案:

import networkx as nx
from networkx.drawing.nx_agraph import graphviz_layout

G = nx.DiGraph()
ed = [[0, 4, -1],
 [0, 5, -1],
 [1, 4, -1],
 [1, 5, -1],
 [2, 4, -1],
 [2, 5, 10],
 [4, 3, -1],
 [5, 3, 100]]

G.add_weighted_edges_from(ed)
pos = graphviz_layout(G, prog='dot', args="-Grankdir=LR")
nx.draw(G,with_labels=True,pos=pos, font_weight='bold')

enter image description here


是的,谢谢你,这就是我想要的!我在使用graphviz和pygraphviz时遇到了一些问题,但是一旦我解决了它们,我将很高兴拥有漂亮的网络。谢谢。 - Nbishop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接