  One practice of employing deep neural networks is to apply the same
architecture to all the input instances. However, a fixed architecture may not
be representative enough for data with high diversity. To promote the model
capacity, existing approaches usually employ larger convolutional kernels or
deeper network structure, which may increase the computational cost. In this
paper, we address this issue by raising the Dynamic Graph Network (DG-Net). The
network learns the instance-aware connectivity, which creates different forward
paths for different instances. Specifically, the network is initialized as a
complete directed acyclic graph, where the nodes represent convolutional blocks
and the edges represent the connection paths. We generate edge weights by a
learnable module \textit{router} and select the edges whose weights are larger
than a threshold, to adjust the connectivity of the neural network structure.
Instead of using the same path of the network, DG-Net aggregates features
dynamically in each node, which allows the network to have more representation
ability. To facilitate the training, we represent the network connectivity of
each sample in an adjacency matrix. The matrix is updated to aggregate features
in the forward pass, cached in the memory, and used for gradient computing in
the backward pass. We verify the effectiveness of our method with several
static architectures, including MobileNetV2, ResNet, ResNeXt, and RegNet.
Extensive experiments are performed on ImageNet classification and COCO object
detection, which shows the effectiveness and generalization ability of our
approach.
