def output_graph(self, outdir, outfile, numInSpecies=None):
self.init_network()
g1 = gv.Digraph(format='png')
g1.attr('node', shape='doublecircle')
for in_node in self.inputs:
g1.attr('node', color='green')
g1.node(self.get_node_name(in_node))
for out_node in self.outputs:
g1.attr('node', color='blue')
g1.node(self.get_node_name(out_node))
g1.attr('node', shape='circle', color='black')
for node_id in self.nodes:
if node_id in self.inputs or node_id in self.outputs:
continue
g1.node(self.get_node_name(node_id))
for conn in (self.connections[x] for x in self.connections):
if not conn.is_enabled:
g1.attr('edge', style='dashed', arrowhead='empty')
if conn.is_recurrent:
if not self.allow_recurrent:
continue
g1.attr('edge', color='red')
g1.edge(self.get_node_name(conn.from_node),
self.get_node_name(conn.to_node),
label='{:.4f}'.format(conn.weight))
g1.attr('edge', color='black', arrowhead='normal', style='solid')
if numInSpecies:
label = ('label = "Fitness = {:.2f}, '
'Species Size = {}"').format(self.fitness,
numInSpecies)
else:
label = 'label = "Fitness = {:.2f}"'.format(self.fitness)
g1.body.append(label)
g1.render(filename=outfile,
directory=outdir,
cleanup=True)
评论列表
文章目录