如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码

简介: 该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。

如何可视化神经网络的神经元节点之间的连接?

1 导出表格

将网络的权重矩阵导出为三个表格

(1)nodes.csv

一列表示,为每个节点的编码

node
node1
node2
node3
node4
node5
node6
node7
node8
node9

(2)links.csv

这个表格表示节点的连接,第一列为顺序编码,唯一表示,第二列是节点的起点,第二个为节点的终点

id source target
1 node1 node2
2 node1 node3
3 node1 node4
4 node1 node7
5 node1 node8
6 node1 node10
7 node1 node13
8 node1 node14
9 node1 node16
10 node1 node19
11 node1 node20
12 node1 node26
13 node1 node29
14 node1 node38

(3)node_class.csv

这个表格表示每个节点的类别,方便后续对不同的节点绘制不同的颜色

id class
node1 hub node
node2 hub node
node3 hub node
node4 non-hub node
node5 hub node
node6 hub node
node7 hub node
node8 non-hub node
import pandas as pd

# 将小数值的权重矩阵转为0-1表示的矩阵
def convert_to_binary(matrix):
    binary_matrix = []
    for row in matrix:
        binary_row = [1 if value != 0 else 0 for value in row]
        binary_matrix.append(binary_row)
    return np.array(binary_matrix)

def generate_data(W):

    adj_binary_matrix = convert_to_binary(W)
    # 初始化邻接矩阵
    adj_matrix = adj_binary_matrix

    # 获取节点数量
    num_nodes = adj_matrix.shape[0]

    # 生成节点编码
    node_codes = ['node' + str(i+1) for i in range(num_nodes)]

    # 创建 nodes.csv 文件
    nodes_df = pd.DataFrame(node_codes, columns=['node'])


    # 创建 links.csv 文件
    links = []
    id = 1
    for i in range(num_nodes):
        for j in range(num_nodes):
            if adj_matrix[i][j] == 1:
                links.append((id, node_codes[i], node_codes[j]))
                id+=1

    links_df = pd.DataFrame(links, columns=['id', 'source', 'target'])
    links_df.to_csv(f'links.csv', index=False)
    nodes_df.to_csv(f'nodes.csv', index=False)
    # 对网络不同度的节点分类,分为高度节点((hub))和非高度节点(non-hub)

    # 计算每个节点的度
    degrees = np.sum(adj_matrix != 0, axis=1)

    # 定义度的连接比例为threshold的为hub节点
    threshold  = 0.7
    threshold_degree = np.quantile(degrees,threshold)
    # 根据节点的度将它们分为两类
    node_classes = ['hub node' if degree >= threshold_degree else 'non-hub node' for degree in degrees]

    # 将结果保存到名为node_class.csv的表格中
    result = pd.DataFrame({'id': node_codes, 'class': node_classes})
    result.to_csv('node_class.csv', index=False)
# 假设神经网络每个神经元之间的邻接矩阵
# 初始化一个10*10的邻接矩阵,初始值全为0
adj_matrix = [
    [-0.000000,0.000000,0.000000,0.000000,0.000000,-0.000000,0.122116,-0.029914,0.364874,0.000000],
[0.000000,-0.000000,-0.003972,-0.035493,-0.412647,-0.000000,-0.000000,-0.000000,-0.000000,-0.000000],
[-0.000000,-0.086977,-0.000000,0.190105,0.000000,-0.153798,-0.000000,0.189070,0.000000,-0.000000],
[-0.000000,0.368288,-0.000000,-0.000000,-0.000000,0.057519,0.000000,-0.000000,0.000000,-0.000000],
[0.000000,-0.000000,-0.214501,0.000000,-0.443936,0.000000,0.000000,0.000000,-0.000000,-0.000000],
[-0.000000,-0.172708,0.052662,-0.184544,0.000000,0.024721,0.000000,-0.300713,-0.414200,0.000000],
[-0.137718,0.000000,0.000000,-0.000000,-0.000000,0.258740,0.099708,0.000000,0.032948,-0.190810],
[-0.000000,-0.106000,0.195423,0.000000,-0.000000,0.029322,-0.000000,0.077991,0.000000,-0.000000],
[0.252584,-0.077399,-0.000000,-0.000000,0.000000,-0.338475,0.498515,0.000000,-0.238516,0.597768],
[-0.000000,0.000000,0.048298,-0.000000,-0.000000,0.000000,0.016180,-0.000000,0.176588,0.000000]]
generate_data(adj_matrix)

2 绘图

免费从Chiplot网络绘制,导入以上生成的三个表格,网站有具体的教程
ChiPlot网站

在这里插入图片描述

在这里插入图片描述

目录
相关文章
|
1月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
2月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
201 2
|
1月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
257 0
|
1月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
113 0
|
1月前
|
传感器 机器学习/深度学习 数据采集
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
152 0
|
11月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
263 17
|
11月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
223 10
|
11月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。

推荐镜像

更多