绘制简单的神经网络结构图,傻瓜式直接调用代码就可以使用

 只需要修改num_node_list中的数字就可以,但是不能太复杂,要不然画不下

import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
import random


def draw_net(num_node_list2):
    num_node_list = [0]
    num_node_list = num_node_list + (num_node_list2)
    G = nx.DiGraph()  # 使用DiGraph创建一个有向图G
    num_sum = len(num_node_list)
    node = [[random.randint(0, 9) for j in range(1)] for i in range(num_sum)]

    temp_n = 1
    for i in range(num_sum - 1):
        temp_n = num_node_list[i] + temp_n
        node[i] = np.arange(temp_n, temp_n + num_node_list[i + 1]).tolist()

    for i in range(len(node) - 1):
        for x in range(len(node[i])):
            for y in range(len(node[i + 1])):
                G.add_edge(node[i][x], node[i + 1][y])

    pos = dict()  # 计算每个节点的坐标pos
    # 根据每一层的节点数量,将节点从中间,向两边分布
    tt_num = 0
    for i in range(len(node)):
        for x in range(len(node[i])):
            tt_num += 1
            pos[tt_num] = (i, x - len(node[i]) / 2)

    nx.draw(G,  # 要绘制的图
            pos,
            with_labels=True,  # 绘制节点的名称
            node_color='white',  # 节点的颜色
            edgecolors='black',  # 边的颜色
            linewidths=3,  # 节点的粗细
            width=2,  # 边的粗细
            node_size=1000  # 节点的大小
            )

    plt.show()  # 使用show方法显示图形


if __name__ == "__main__":
    num_node_list = [4, 10, 10, 4, 1]
    draw_net(num_node_list)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值