Я пытаюсь создать график, показывающий архитектуру Con vNet с остаточными соединениями. Я использую следующее определение графика.
digraph Model {
node [shape=box];
input [label="Input"];
n1 [label="Conv2d(256, BN, ReLU)"];
n2 [label="Conv2D(256, BN, ReLU)"];
n3 [label="Conv2D(128, BN, ReLU)"];
n4 [label="Conv2D(128, BN, ReLU)"];
n5 [label="GlobalPool2d"];
n6 [label="Flatten"];
top [label="Dense(1, Sigmoid)"];
add1 [label="Add"];
add2 [label="Add"];
input -> n1;
n1 -> n2;
n1 -> add1;
n2 -> add1;
add1 -> n3;
n3 -> n4;
n3 -> add2;
n4 -> add2;
add2 -> n5;
n5 -> n6 -> top;
}
Сгенерированный график выглядит так, как показано на следующем рисунке.
Проблема заключается в что остаточные соединения сдвигают слои свертки влево. Интересно, можно ли выровнять прямоугольники по вертикальной оси? Таким образом, все слои находятся на одной вертикальной линии, а остаточные соединения go вокруг. Я пытался сделать некоторые манипуляции с rank
и rankdir
, но безуспешно.
Не могли бы вы помочь мне с этим? Или, может быть, укажите на соответствующую часть документации, где я могу прочитать, как правильно делать то, что мне нужно?