code: public static int cudnnBatchNormalizationBackward(
          cudnnHandle handle, 
          int mode, 
          Pointer alphaDataDiff, 
          Pointer betaDataDiff, 
          Pointer alphaParamDiff, 
          Pointer betaParamDiff, 
          cudnnTensorDescriptor xDesc, /** same desc for x, dx, dy */
          Pointer x, 
          cudnnTensorDescriptor dyDesc, 
          Pointer dy, 
          cudnnTensorDescriptor dxDesc, 
          Pointer dx, 
          /** Shared tensor desc for the 4 tensors below */
          cudnnTensorDescriptor dBnScaleBiasDesc, 
          Pointer bnScale, /** bnBias doesn't affect backpropagation */
          /** scale and bias diff are not backpropagated below this layer */
          Pointer dBnScaleResult, 
          Pointer dBnBiasResult, 
          /** Same epsilon as forward pass */
          double epsilon, 
          /** Optionally cached intermediate results from
                                             forward pass */
          Pointer savedMean, 
          Pointer savedInvVariance)
      {
          return checkResult(cudnnBatchNormalizationBackwardNative(handle, mode, alphaDataDiff, betaDataDiff, alphaParamDiff, betaParamDiff, xDesc, x, dyDesc, dy, dxDesc, dx, dBnScaleBiasDesc, bnScale, dBnScaleResult, dBnBiasResult, epsilon, savedMean, savedInvVariance));
      }
docs: Performs backward pass of Batch Normalization layer. Returns x gradient,
  bnScale gradient and bnBias gradient