Graphviz を使用して、基本的なニューラル ネットワークの状態を把握しようとしています。入力層には 14 個のニューロンがあり、出力層には 1 個のニューロンしかありません。隠れ層の数と、各層内にあるニューロンの数を選択できます。通常、隠れ層は 1 つだけです。ただし、この層内のニューロンの数はかなり大きくなる可能性があります (1000 など)。しかし、デモンストレーションの目的で、必要なニューロンは 5 つだけです (何百ものニューロンの有用な画像が得られないことは承知しています)。そうしたいです:
- 各ニューロン間のエッジ (接続) の重みを書きます
- 重みに応じてエッジの厚さを変更します
- 多分各レイヤーにラベルを付ける
太さについては、「ペン幅」を使用できることを知っています。また、各レイヤーを境界付けてラベルを付けるのに役立つクラスターについても知っています。これまでの主な問題は、入力層 (14 個のニューロン) と非表示層の間にエッジが多すぎて、Graphiz が鮮明な画像を生成できないことです。接続の重みを表示するラベルを追加すると、さらに悪化します。入力レイヤーと非表示レイヤーの間にスペースを追加すると、レンダリングの読みやすさが向上すると思いますが、長い研究にもかかわらず、その方法が見つかりませんでした。
現在のニューラル ネットワークのレンダリング (重みなし)
この画像の背後にある自動生成されたドット コードは次のとおりです。
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 のように番号付けされています。写真ではニューロンが正しい順序で表示されていないことに注意してください。この問題も解決できませんでした...
助けてくれてありがとう。