code: public Gradient backpropGradient(INDArray... epsilons) {
          if (epsilons == null || epsilons.length != numOutputArrays)
              throw new IllegalArgumentException(
                      "Invalid input: must have epsilons length equal to number of output arrays");
  
  
          try {
              calcBackpropGradients(true, configuration.getBackpropType() == BackpropType.TruncatedBPTT, epsilons);
              return gradient;
          } catch (OutOfMemoryError e){
              CrashReportingUtil.writeMemoryCrashDump(this, e);
              throw e;
          }
      }
docs: Calculate the gradient of the network with respect to some external errors.
  Note that this is typically used for things like reinforcement learning, not typical networks that include
  an OutputLayer or RnnOutputLayer
  
  @param epsilons Epsilons (errors) at the output. Same order with which the output layers are defined in configuration setOutputs(String...)
  @return Gradient for the network