пятница, 5 апреля 2019 г.

Визуализация персептрона (искусственной нейронной сети)


Одной из важных задач при при оформлении материалов, посвященных ИНС (искусственным нейтронным сетям), является визуализация топологии сети. На сайте уважаемого Thiago G. Martins увидел рисунок, выполненный с помощью программы dot, входящей в пакет Graphviz

На этом рисунке имеется существенный дефект: концы стрелок, придающие рисунку отталкивающий вид. Исходный код рисунка может быть откорректирован, путем добавления опции [dir=none] после указания связи между нейронами двух слоев.


digraph G {
  rankdir=LR
  splines=line
        
  node [fixedsize=true, label=""];
  subgraph cluster_0 {
  color=white;
  node [style=solid,color=blue4, shape=circle];
  x1 x2 x3;
  label = "(Входной слой)";
 }

 subgraph cluster_1 {
  color=white;
  node [style=solid,color=red2, shape=circle];
  a12 a22 a32;
  label = "(Скрытый слой)";
 }

 subgraph cluster_2 {
  color=white;
  node [style=solid,color=seagreen2, shape=circle];
  O;
  label="(Выходной слой)";
 }

   x1 -> a12 [dir=none]
   x1 -> a22 [dir=none]
   x1 -> a32 [dir=none]
   x2 -> a12 [dir=none]
   x2 -> a22 [dir=none]
   x2 -> a32 [dir=none]
   x3 -> a12 [dir=none]
   x3 -> a22 [dir=none]
   x3 -> a32 [dir=none]

   a12 -> O [dir=none]
   a22 -> O [dir=none]
   a32 -> O [dir=none]

}

После составления кода можно сформировать рисунок в формате PNG командой:

dot -Tpng -O 1.txt

Результат:

Комментариев нет:

Отправить комментарий