我正在为python中的进化研究编写一个程序。我的程序的输出是一堆神经网络(固定大小/结构的图形)。
对于所有意图和目的,神经网络可以简单地由某个固定顺序的连接权重数组表示。
我希望能够以某种方式直观地表示神经网络,以显示我的程序的输出是否收敛到类似的网络或许多不同的集群。
例如,假设50个数组看起来像这样:
[.5, -.25, 2.31, -3.2, 1, .88 ...etc ]
我想以某种方式绘制这些图,以便在视觉上证明哪些阵列彼此相似。
由于
答案 0 :(得分:0)
假设您的神经网络以随机值播种,则有序的有序列表之间不太可能存在任何有意义的关系。您可以通过比较大量输入的输出来检查它们在功能上的相似程度。
如果您真的想比较权重,可以绘制权重指数与网络与权重值的二维直方图。使用pyROOT:
from pyROOT import TH2D
z_min, z_max = #suitable range for weight values
h = TH2D("h", "h", 50, -0.5, 49.5, n_weights, -0.5, n_weights-0.5, 100, z_min, z_max)
for i_network in range(50):
for i_weight in range(n_weights):
h.Fill(i_network, i_weight, networks[i_network][i_weight]
h.Draw("colz")
此处具有相似颜色的行将指示网络中的一致权重值。