python绘制神经网络热力图
时间: 2025-06-20 20:09:55 浏览: 12
### 使用Python绘制神经网络热力图
为了使用Python绘制神经网络的热力图,可以采用`seaborn`库中的`heatmap`函数配合`matplotlib`进行展示。以下是具体实现方法:
#### 创建数据
首先需要构建代表神经网络权重的数据结构。通常情况下,这会是一个二维数组或者矩阵形式的数据。
```python
import numpy as np
# 假设有一个简单的三层全连接层神经网络,
# 输入层有4个节点,隐藏层有3个节点,输出层有两个节点。
weights_input_hidden = np.random.rand(4, 3) * 2 - 1 # 权重范围[-1, 1]
weights_hidden_output = np.random.rand(3, 2) * 2 - 1
```
#### 绘制热力图
接着通过`seaborn`来创建热力图,并调整样式使其更加直观易懂。
```python
import seaborn as sns
import matplotlib.pyplot as plt
def plot_heatmap(data_matrix, title="Neural Network Weights Heatmap"):
"""
:param data_matrix: 要可视化的权重重构后的矩阵.
:param title: 图表标题,默认为'Neural Network Weights Heatmap'.
"""
# 设置图形尺寸
plt.figure(figsize=(8, 6))
# 绘制热力图并添加数值标注
ax = sns.heatmap(
data=data_matrix,
annot=True,
fmt=".2f", # 数字保留两位小数
cmap='coolwarm', # 颜色映射方案
cbar_kws={'label': 'Weight Value'} # 添加颜色条标签
)
# 自定义坐标轴名称
ax.set_xlabel('Output Nodes')
ax.set_ylabel('Input/Hidden Nodes')
# 显示图表标题
plt.title(title)
# 展示图片
plt.show()
# 对输入至隐含层之间的权重进行可视化
plot_heatmap(weights_input_hidden, "Weights from Input Layer to Hidden Layer")
# 对隐含层到输出层间的权重做同样的处理
plot_heatmap(weights_hidden_output, "Weights from Hidden Layer to Output Layer")
```
上述代码片段展示了如何基于给定的神经网络模型参数(即各层间连接的权重),利用`seaborn`和`matplotlib`生成对应的热力图[^4]。
阅读全文
相关推荐


















