public abstract class BaseOptimizer extends java.lang.Object implements ConvexOptimizer
| Modifier and Type | Field and Description |
|---|---|
protected ComputationGraphUpdater |
computationGraphUpdater |
protected NeuralNetConfiguration |
conf |
static java.lang.String |
GRADIENT_KEY |
protected java.util.Collection<IterationListener> |
iterationListeners |
protected BackTrackLineSearch |
lineMaximizer |
protected static org.slf4j.Logger |
log |
protected Model |
model |
protected double |
oldScore |
static java.lang.String |
PARAMS_KEY |
protected double |
score |
static java.lang.String |
SCORE_KEY |
static java.lang.String |
SEARCH_DIR |
protected java.util.Map<java.lang.String,java.lang.Object> |
searchState |
protected double |
step |
protected StepFunction |
stepFunction |
protected double |
stepMax |
protected java.util.Collection<TerminationCondition> |
terminationConditions |
protected Updater |
updater |
| Constructor and Description |
|---|
BaseOptimizer(NeuralNetConfiguration conf,
StepFunction stepFunction,
java.util.Collection<IterationListener> iterationListeners,
java.util.Collection<TerminationCondition> terminationConditions,
Model model) |
BaseOptimizer(NeuralNetConfiguration conf,
StepFunction stepFunction,
java.util.Collection<IterationListener> iterationListeners,
Model model) |
| Modifier and Type | Method and Description |
|---|---|
int |
batchSize()
The batch size for the optimizer
|
boolean |
checkTerminalConditions(org.nd4j.linalg.api.ndarray.INDArray gradient,
double oldScore,
double score,
int i)
Check termination conditions
setup a search state
|
ComputationGraphUpdater |
getComputationGraphUpdater() |
NeuralNetConfiguration |
getConf() |
static StepFunction |
getDefaultStepFunctionForOptimizer(java.lang.Class<? extends ConvexOptimizer> optimizerClass) |
static int |
getIterationCount(Model model) |
Updater |
getUpdater() |
Pair<Gradient,java.lang.Double> |
gradientAndScore()
The gradient and score for this optimizer
|
static void |
incrementIterationCount(Model model,
int incrementBy) |
boolean |
optimize()
Optimize call.
|
protected void |
postFirstStep(org.nd4j.linalg.api.ndarray.INDArray gradient) |
void |
postStep(org.nd4j.linalg.api.ndarray.INDArray gradient)
Post step to update searchDirection with new gradient and parameter information
|
void |
preProcessLine()
Pre preProcess to setup initial searchDirection approximation
|
double |
score()
The score for the optimizer so far
|
void |
setBatchSize(int batchSize)
Set the batch size for the optimizer
|
void |
setListeners(java.util.Collection<IterationListener> listeners) |
void |
setUpdater(Updater updater) |
void |
setUpdaterComputationGraph(ComputationGraphUpdater updater) |
void |
setupSearchState(Pair<Gradient,java.lang.Double> pair)
Setup the initial search state
|
void |
updateGradientAccordingToParams(Gradient gradient,
Model model,
int batchSize)
Update the gradient according to the configuration such as adagrad, momentum, and sparsity
|
protected NeuralNetConfiguration conf
protected static final org.slf4j.Logger log
protected StepFunction stepFunction
protected java.util.Collection<IterationListener> iterationListeners
protected java.util.Collection<TerminationCondition> terminationConditions
protected Model model
protected BackTrackLineSearch lineMaximizer
protected Updater updater
protected ComputationGraphUpdater computationGraphUpdater
protected double step
protected double score
protected double oldScore
protected double stepMax
public static final java.lang.String GRADIENT_KEY
public static final java.lang.String SCORE_KEY
public static final java.lang.String PARAMS_KEY
public static final java.lang.String SEARCH_DIR
protected java.util.Map<java.lang.String,java.lang.Object> searchState
public BaseOptimizer(NeuralNetConfiguration conf, StepFunction stepFunction, java.util.Collection<IterationListener> iterationListeners, Model model)
conf - stepFunction - iterationListeners - model - public BaseOptimizer(NeuralNetConfiguration conf, StepFunction stepFunction, java.util.Collection<IterationListener> iterationListeners, java.util.Collection<TerminationCondition> terminationConditions, Model model)
conf - stepFunction - iterationListeners - terminationConditions - model - public double score()
ConvexOptimizerscore in interface ConvexOptimizerpublic Updater getUpdater()
getUpdater in interface ConvexOptimizerpublic void setUpdater(Updater updater)
setUpdater in interface ConvexOptimizerpublic ComputationGraphUpdater getComputationGraphUpdater()
getComputationGraphUpdater in interface ConvexOptimizerpublic void setUpdaterComputationGraph(ComputationGraphUpdater updater)
setUpdaterComputationGraph in interface ConvexOptimizerpublic void setListeners(java.util.Collection<IterationListener> listeners)
setListeners in interface ConvexOptimizerpublic NeuralNetConfiguration getConf()
getConf in interface ConvexOptimizerpublic Pair<Gradient,java.lang.Double> gradientAndScore()
ConvexOptimizergradientAndScore in interface ConvexOptimizerpublic boolean optimize()
optimize in interface ConvexOptimizerprotected void postFirstStep(org.nd4j.linalg.api.ndarray.INDArray gradient)
public boolean checkTerminalConditions(org.nd4j.linalg.api.ndarray.INDArray gradient,
double oldScore,
double score,
int i)
ConvexOptimizercheckTerminalConditions in interface ConvexOptimizergradient - layer gradientsi - what iteration the optimizer is onpublic int batchSize()
ConvexOptimizerbatchSize in interface ConvexOptimizerpublic void setBatchSize(int batchSize)
ConvexOptimizersetBatchSize in interface ConvexOptimizerpublic void preProcessLine()
preProcessLine in interface ConvexOptimizerpublic void postStep(org.nd4j.linalg.api.ndarray.INDArray gradient)
postStep in interface ConvexOptimizerpublic void updateGradientAccordingToParams(Gradient gradient, Model model, int batchSize)
ConvexOptimizerupdateGradientAccordingToParams in interface ConvexOptimizergradient - the gradient to modifymodel - the model with the parameters to updatebatchSize - batchSize for updatepublic void setupSearchState(Pair<Gradient,java.lang.Double> pair)
setupSearchState in interface ConvexOptimizerpair - public static StepFunction getDefaultStepFunctionForOptimizer(java.lang.Class<? extends ConvexOptimizer> optimizerClass)
public static int getIterationCount(Model model)
public static void incrementIterationCount(Model model, int incrementBy)