
通过随机生成的节点与连接,这段简短的代码生动模拟了神经网络的抽象结构——虽然不是真正的网络,却完美捕捉了其“节点-连接”的核心视觉语言。
在学习和讲解神经网络时,一张直观的结构图往往胜过千言万语。下面这段来自Clcoding.com的代码,利用numpy和matplotlib的3D绘图功能,快速生成了一个抽象但形象的“3D神经网络”示意图。
import numpy as npimport matplotlib.pyplot as pltfig = plt.figure()ax = fig.add_subplot(111, projection='3d')numpy用于生成随机数据,matplotlib用于绘图projection='3d'指定创建一个三维坐标轴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控制点的大小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():绘制两点之间的线段(三维直线)ax.set_title("3D Neural Network")ax.set_axis_off()plt.show()运行这段代码,你将看到一个:
points = np.random.rand(50, 3) * 5 | ||
s=60 | 100,节点更醒目 | |
np.random.rand() < 0.3 | ||
scatter中添加color='red' | ||
plot中添加linewidth=0.5, alpha=0.6 |
这段代码并非真正的神经网络训练或推理,而是一个高度可定制的可视化玩具。它适合用于:
通过调整随机种子(np.random.seed(42)),你还可以让每次运行生成的图形“可复现”。试试看,你的“神经网络”会长成什么形状?
