For both displacement and velocity, we adopt a simple U-Net/V-Net [1]}, [2]} type architecture similar to that in Ref. [3]}. It works on 4 levels of resolution connected in a “V” shape first by 3 downsampling layers and then by 3 upsampling layers, by stride-2 \(2^3\)  convolutions and stride-12 \(2^3\)  transposed convolutions, respectively. Blocks of 2 \(3^3\)  convolutions connect the input, the resampling, and the output layers. Similar to V-Net, a residual connection [4]}, here a \(1^3\)  convolution instead of identity, is added over each block. We use a batch normalization layer after every convolution except the first one and the last two, and a leaky ReLU activation (with negative slope 0.01) after each batch normalization, as well as the first and the second to last convolution layers. As in the original ResNet architecture, the second or last activation in each residual block applies after the addition. And as in U-Net, the inputs to each of the downsampling layers are concatenated to the outputs of the upsampling layers of the same resolution, at the top 3 resolution levels. All layers have 64 channels, except the input and the output (3), and those after concatenations (128). Finally, an important difference from the original U-Net architecture is that we add the input displacement or velocity fields directly to the output. Therefore the network is effectively learning the corrections from linear to nonlinear motions, as we have mentioned above.
