I’m not sure if there is a paper about it, but it is basically an average pooling layer with dynamic kernel so that the output will have the specified shape. It’s useful in case your input shapes are variable, e.g. to create a fixed number of features.