'Allocate output buffer to store activations from fprop.
Don\'t reallocate if it already exists.
Only allocate space if layer owns its own output (e.g., bias and activation work
in place, so do not own their output).
Outputs can be allocated from a pre-allocated pool if shared_outputs is provided.
Arguments:
shared_outputs (Tensor, optional): pre-allocated tensor for activations to be
computed into'

def allocate(self, shared_outputs=None):

    if self.outputs:
        return
    if self.owns_output:
        self.outputs = self.be.iobuf(self.out_shape, shared=shared_outputs, parallelism=self.parallelism)
