public class GradientCheckUtil
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
static boolean |
checkGradients(ComputationGraph graph,
double epsilon,
double maxRelError,
double minAbsoluteError,
boolean print,
boolean exitOnFirstError,
org.nd4j.linalg.api.ndarray.INDArray[] inputs,
org.nd4j.linalg.api.ndarray.INDArray[] labels)
Check backprop gradients for a ComputationGraph
|
static boolean |
checkGradients(MultiLayerNetwork mln,
double epsilon,
double maxRelError,
double minAbsoluteError,
boolean print,
boolean exitOnFirstError,
org.nd4j.linalg.api.ndarray.INDArray input,
org.nd4j.linalg.api.ndarray.INDArray labels)
Check backprop gradients for a MultiLayerNetwork.
|
static boolean |
checkGradientsPretrainLayer(Layer layer,
double epsilon,
double maxRelError,
double minAbsoluteError,
boolean print,
boolean exitOnFirstError,
org.nd4j.linalg.api.ndarray.INDArray input,
int rngSeed)
Check backprop gradients for a pretrain layer
NOTE: gradient checking pretrain layers can be difficult...
|
public static boolean checkGradients(MultiLayerNetwork mln, double epsilon, double maxRelError, double minAbsoluteError, boolean print, boolean exitOnFirstError, org.nd4j.linalg.api.ndarray.INDArray input, org.nd4j.linalg.api.ndarray.INDArray labels)
mln
- MultiLayerNetwork to test. This must be initialized.epsilon
- Usually on the order/ of 1e-4 or so.maxRelError
- Maximum relative error. Usually < 1e-5 or so, though maybe more for deep networks or those with nonlinear activationminAbsoluteError
- Minimum absolute error to cause a failure. Numerical gradients can be non-zero due to precision issues.
For example, 0.0 vs. 1e-18: relative error is 1.0, but not really a failureprint
- Whether to print full pass/failure details for each parameter gradientexitOnFirstError
- If true: return upon first failure. If false: continue checking even if
one parameter gradient has failed. Typically use false for debugging, true for unit tests.input
- Input array to use for forward pass. May be mini-batch data.labels
- Labels/targets to use to calculate backprop gradient. May be mini-batch data.public static boolean checkGradients(ComputationGraph graph, double epsilon, double maxRelError, double minAbsoluteError, boolean print, boolean exitOnFirstError, org.nd4j.linalg.api.ndarray.INDArray[] inputs, org.nd4j.linalg.api.ndarray.INDArray[] labels)
graph
- ComputationGraph to test. This must be initialized.epsilon
- Usually on the order of 1e-4 or so.maxRelError
- Maximum relative error. Usually < 0.01, though maybe more for deep networksminAbsoluteError
- Minimum absolute error to cause a failure. Numerical gradients can be non-zero due to precision issues.
For example, 0.0 vs. 1e-18: relative error is 1.0, but not really a failureprint
- Whether to print full pass/failure details for each parameter gradientexitOnFirstError
- If true: return upon first failure. If false: continue checking even if
one parameter gradient has failed. Typically use false for debugging, true for unit tests.inputs
- Input arrays to use for forward pass. May be mini-batch data.labels
- Labels/targets (output) arrays to use to calculate backprop gradient. May be mini-batch data.public static boolean checkGradientsPretrainLayer(Layer layer, double epsilon, double maxRelError, double minAbsoluteError, boolean print, boolean exitOnFirstError, org.nd4j.linalg.api.ndarray.INDArray input, int rngSeed)