code: @Override
      public Pair<INDArray, INDArray> backprop(INDArray in, INDArray epsilon) {
          assertShape(in, epsilon);
          // no support in ELU native to override alpha
          if (alpha != 1.00) {
              INDArray dLdz = Nd4j.getExecutioner().exec(new ELUDerivative(in.dup()));
              dLdz.muli(alpha);
              BooleanIndexing.replaceWhere(dLdz, 1, Conditions.equals(alpha));
  
              dLdz.muli(epsilon);
              return new Pair<>(dLdz, null);
          }
  
          else {
              INDArray dLdz = Nd4j.getExecutioner().exec(new ELUDerivative(in));
              dLdz.muli(epsilon);
              return new Pair<>(dLdz, null);
          }
      }
docs: /*
  = alpha * exp(x) ; x < 0
  f'(x)
  = 1 ; x >= 0