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)