当前位置:首页>python>用Python绘制3D神经网络:一段代码的可视化趣味

用Python绘制3D神经网络:一段代码的可视化趣味

  • 2026-10-10 21:42:49
用Python绘制3D神经网络:一段代码的可视化趣味

通过随机生成的节点与连接,这段简短的代码生动模拟了神经网络的抽象结构——虽然不是真正的网络,却完美捕捉了其“节点-连接”的核心视觉语言。

在学习和讲解神经网络时,一张直观的结构图往往胜过千言万语。下面这段来自Clcoding.com的代码,利用numpy和matplotlib的3D绘图功能,快速生成了一个抽象但形象的“3D神经网络”示意图。

🧩 代码逐段解析

1. 导入库与创建3D画布

import numpy as npimport matplotlib.pyplot as pltfig = plt.figure()ax = fig.add_subplot(111, projection='3d')
  • 导入numpy用于生成随机数据,matplotlib用于绘图
  • projection='3d'指定创建一个三维坐标轴

2. 生成随机节点

points = np.random.rand(20, 3) * 5ax.scatter(points[:,0], points[:,1], points[:,2], s=60)
  • np.random.rand(20, 3):生成20个点,每个点有(x, y, z)三个坐标,值域[0, 1)
  • 乘以5:将坐标范围扩展到[0, 5]
  • ax.scatter(..., s=60):绘制散点图,s=60控制点的大小

3. 随机生成连接

for i in range(len(points)):for j in range(i+1, len(points)):if np.random.rand() < 0.2:            ax.plot([points[i,0], points[j,0]],                    [points[i,1], points[j,1]],                    [points[i,2], points[j,2]])
  • 双重循环:遍历所有点对 (i, j),且 j > i,确保每对只绘制一次
  • np.random.rand() < 0.2:以20%的概率随机决定是否连接这两个节点
  • ax.plot():绘制两点之间的线段(三维直线)

4. 设置样式与显示

ax.set_title("3D Neural Network")ax.set_axis_off()plt.show()
  • 添加标题
  • 隐藏坐标轴,让图形更像一张概念图而非数学图表

🧠 视觉效果

运行这段代码,你将看到一个:

  • 20个随机分布的节点(蓝色圆点),散落于三维空间中
  • 大约20%的节点对之间有线条相连(因为20个节点共有190个节点对,约38条连接)
  • 整体视觉上,类似一个随机连接的神经网络拓扑图

🎨 参数调整建议

参数
作用
修改示例
points = np.random.rand(50, 3) * 5
节点数量
改为50,获得更密集的网络
s=60
节点大小
改为100,节点更醒目
np.random.rand() < 0.3
连接概率
改为0.3,连接更稠密
节点颜色
散点颜色
在scatter中添加color='red'
线条样式
连接线外观
在plot中添加linewidth=0.5, alpha=0.6

📌 结语

这段代码并非真正的神经网络训练或推理,而是一个高度可定制的可视化玩具。它适合用于:

  • 教学演示:向初学者直观展示神经网络由“节点+连接”构成
  • 示意图生成:为博客、幻灯片生成抽象的AI配图
  • 趣味编程:体验几行代码创造视觉作品的乐趣

通过调整随机种子(np.random.seed(42)),你还可以让每次运行生成的图形“可复现”。试试看,你的“神经网络”会长成什么形状?

NGINX架构详解:事件驱动如何成就高并发王者
微软确认Windows 11更新导致“重置此电脑”功能失效
神经可塑性:大脑如何通过学习和损伤重塑自身

最新文章

随机文章