我嘗試使用的Graphviz獲得一個基本的神經網絡的狀態的畫面呈現graphviz的。輸入層有14個神經元,輸出層只有一個神經元。人們可以選擇隱藏層的數量以及每層中的神經元數量。通常,只有一個隱藏層。雖然這個圖層中的神經元數量可能相當大(如1000)。但是,出於演示的目的,我只需要像5元(我知道我永遠也不會得到有用的圖片爲數以百計的神經細胞)。我想:需要幫助改善神經網絡基本
- 收件每個神經元
- 之間的邊緣(連接)的重量修改邊緣的厚度根據其重量
- 也許標記每個層
關於厚度,我知道我可以使用「筆寬」。我也瞭解羣集,這可以幫助限制每個圖層並對它們進行標記。我的主要問題,到目前爲止,是有太多的邊緣,輸入層(14個神經元)和隱藏層之間,用於Graphiz以產生清晰的畫面。如果我添加標籤來顯示連接的權重,那更糟。 我覺得把我的輸入和隱藏層之間更多的空間可以提高渲染的可讀性,但我沒有找到如何做到這一點,儘管長期的研究。
這是怎麼樣子的時刻: Current rendering of the neural network, without weights
這裏是自動生成的點代碼,這幅畫的背後:
digraph graphname {
0.0 -> 1.0;
0.1 -> 1.0;
0.2 -> 1.0;
0.3 -> 1.0;
0.4 -> 1.0;
0.5 -> 1.0;
0.6 -> 1.0;
0.7 -> 1.0;
0.8 -> 1.0;
0.9 -> 1.0;
0.10 -> 1.0;
0.11 -> 1.0;
0.12 -> 1.0;
0.13 -> 1.0;
0.0 -> 1.1;
0.1 -> 1.1;
0.2 -> 1.1;
0.3 -> 1.1;
0.4 -> 1.1;
0.5 -> 1.1;
0.6 -> 1.1;
0.7 -> 1.1;
0.8 -> 1.1;
0.9 -> 1.1;
0.10 -> 1.1;
0.11 -> 1.1;
0.12 -> 1.1;
0.13 -> 1.1;
0.0 -> 1.2;
0.1 -> 1.2;
0.2 -> 1.2;
0.3 -> 1.2;
0.4 -> 1.2;
0.5 -> 1.2;
0.6 -> 1.2;
0.7 -> 1.2;
0.8 -> 1.2;
0.9 -> 1.2;
0.10 -> 1.2;
0.11 -> 1.2;
0.12 -> 1.2;
0.13 -> 1.2;
0.0 -> 1.3;
0.1 -> 1.3;
0.2 -> 1.3;
0.3 -> 1.3;
0.4 -> 1.3;
0.5 -> 1.3;
0.6 -> 1.3;
0.7 -> 1.3;
0.8 -> 1.3;
0.9 -> 1.3;
0.10 -> 1.3;
0.11 -> 1.3;
0.12 -> 1.3;
0.13 -> 1.3;
0.0 -> 1.4;
0.1 -> 1.4;
0.2 -> 1.4;
0.3 -> 1.4;
0.4 -> 1.4;
0.5 -> 1.4;
0.6 -> 1.4;
0.7 -> 1.4;
0.8 -> 1.4;
0.9 -> 1.4;
0.10 -> 1.4;
0.11 -> 1.4;
0.12 -> 1.4;
0.13 -> 1.4;
1.0 -> 2.0;
1.1 -> 2.0;
1.2 -> 2.0;
1.3 -> 2.0;
1.4 -> 2.0;
}
在這段代碼中,神經元的編號是這樣的: LAYER_NUMBER.NEURON_NUMBER。 請注意,神經元不以正確的順序出現在圖片中,我也沒有解決的問題...
感謝您的幫助。