  Traditional source separation approaches train deep neural network models
end-to-end with all the data available at once by minimizing the empirical risk
on the whole training set. On the inference side, after training the model, the
user fetches a static computation graph and runs the full model on some
specified observed mixture signal to get the estimated source signals.
Additionally, many of those models consist of several basic processing blocks
which are applied sequentially. We argue that we can significantly increase
resource efficiency during both training and inference stages by reformulating
a model's training and inference procedures as iterative mappings of latent
signal representations. First, we can apply the same processing block more than
once on its output to refine the input signal and consequently improve
parameter efficiency. During training, we can follow a block-wise procedure
which enables a reduction on memory requirements. Thus, one can train a very
complicated network structure using significantly less computation compared to
end-to-end training. During inference, we can dynamically adjust how many
processing blocks and iterations of a specific block an input signal needs
using a gating module.
