constructor() {
    super({});
    // TODO(bileschi): Can we point to documentation on masking here?
    this.supportsMasking = true;
  }
This custom layer is similar to the 'relu' non-linear Activation `Layer`, but
it keeps both the negative and positive signal.  The input is centered at the
mean value, and then the negative activations and positive activations are
separated into different channels, meaning that there are twice as many
output channels as input channels.

Implementing a custom `Layer` in general involves specifying a `call`
function, and possibly also a `computeOutputShape` and `build` function. This
layer does not need a custom `build` function because it does not store any
variables.

Custom layers currently can not be saved / loaded.  Tracking issue at
https://github.com/tensorflow/tfjs/issues/254