public abstract class BaseOutputLayer<LayerConfT extends BaseOutputLayer> extends BaseLayer<LayerConfT> implements java.io.Serializable, IOutputLayer
Layer.TrainingMode, Layer.Type
Modifier and Type | Field and Description |
---|---|
protected org.nd4j.linalg.api.ndarray.INDArray |
inputMaskArray |
protected MaskState |
inputMaskArrayState |
protected org.nd4j.linalg.api.ndarray.INDArray |
labels |
conf, dropoutApplied, dropoutMask, gradient, gradientsFlattened, gradientViews, index, input, iterationListeners, maskArray, maskState, optimizer, params, paramsFlattened, score
Constructor and Description |
---|
BaseOutputLayer(NeuralNetConfiguration conf) |
BaseOutputLayer(NeuralNetConfiguration conf,
org.nd4j.linalg.api.ndarray.INDArray input) |
Modifier and Type | Method and Description |
---|---|
org.nd4j.linalg.api.ndarray.INDArray |
activate()
Trigger an activation with the last specified input
|
org.nd4j.linalg.api.ndarray.INDArray |
activate(org.nd4j.linalg.api.ndarray.INDArray input)
Initialize the layer with the given input
and return the activation for this layer
given this input
|
org.nd4j.linalg.api.ndarray.INDArray |
activate(org.nd4j.linalg.api.ndarray.INDArray input,
boolean training)
Initialize the layer with the given input
and return the activation for this layer
given this input
|
protected void |
applyMask(org.nd4j.linalg.api.ndarray.INDArray to) |
Pair<Gradient,org.nd4j.linalg.api.ndarray.INDArray> |
backpropGradient(org.nd4j.linalg.api.ndarray.INDArray epsilon)
Calculate the gradient relative to the error in the next layer
|
void |
clear()
Clear input
|
void |
computeGradientAndScore()
Update the score
|
double |
computeScore(double fullNetworkL1,
double fullNetworkL2,
boolean training)
Compute score after labels and input have been set.
|
org.nd4j.linalg.api.ndarray.INDArray |
computeScoreForExamples(double fullNetworkL1,
double fullNetworkL2)
Compute the score for each example individually, after labels and input have been set.
|
double |
f1Score(org.nd4j.linalg.dataset.api.DataSet data)
Sets the input and labels and returns a score for the prediction
wrt true labels
|
double |
f1Score(org.nd4j.linalg.api.ndarray.INDArray examples,
org.nd4j.linalg.api.ndarray.INDArray labels)
Returns the f1 score for the given examples.
|
void |
fit(org.nd4j.linalg.dataset.api.DataSet data)
Fit the model
|
void |
fit(org.nd4j.linalg.dataset.api.iterator.DataSetIterator iter)
Train the model based on the datasetiterator
|
void |
fit(org.nd4j.linalg.api.ndarray.INDArray data)
Fit the model to the given data
|
void |
fit(org.nd4j.linalg.api.ndarray.INDArray input,
org.nd4j.linalg.api.ndarray.INDArray labels)
Fit the model
|
void |
fit(org.nd4j.linalg.api.ndarray.INDArray examples,
int[] labels)
Fit the model
|
org.nd4j.linalg.api.ndarray.INDArray |
getLabels()
Get the labels array previously set with
IOutputLayer.setLabels(INDArray) |
protected org.nd4j.linalg.api.ndarray.INDArray |
getLabels2d() |
Gradient |
gradient()
Gets the gradient from one training iteration
|
Pair<Gradient,java.lang.Double> |
gradientAndScore()
Get the gradient and score
|
boolean |
isPretrainLayer()
Returns true if the layer can be trained in an unsupervised/pretrain manner (VAE, RBMs etc)
|
void |
iterate(org.nd4j.linalg.api.ndarray.INDArray input)
iterate one iteration of the network
|
org.nd4j.linalg.api.ndarray.INDArray |
labelProbabilities(org.nd4j.linalg.api.ndarray.INDArray examples)
Returns the probabilities for each label
for each example row wise
|
int |
numLabels()
Returns the number of possible labels
|
org.nd4j.linalg.api.ndarray.INDArray |
output(boolean training)
Classify input
|
org.nd4j.linalg.api.ndarray.INDArray |
output(org.nd4j.linalg.api.ndarray.INDArray input) |
org.nd4j.linalg.api.ndarray.INDArray |
output(org.nd4j.linalg.api.ndarray.INDArray input,
boolean training) |
java.util.List<java.lang.String> |
predict(org.nd4j.linalg.dataset.api.DataSet dataSet)
Return predicted label names
|
int[] |
predict(org.nd4j.linalg.api.ndarray.INDArray input)
Returns the predictions for each example in the dataset
|
protected org.nd4j.linalg.api.ndarray.INDArray |
preOutput2d(boolean training) |
void |
setLabels(org.nd4j.linalg.api.ndarray.INDArray labels)
Set the labels array for this output layer
|
protected void |
setScoreWithZ(org.nd4j.linalg.api.ndarray.INDArray z) |
accumulateScore, activate, activate, activate, activationMean, applyDropOutIfNecessary, applyLearningRateScoreDecay, batchSize, calcGradient, calcL1, calcL2, clone, conf, createGradient, derivativeActivation, error, feedForwardMaskArray, fit, getIndex, getInput, getInputMiniBatchSize, getListeners, getMaskArray, getOptimizer, getParam, init, initParams, input, layerConf, layerNameAndIndex, merge, numParams, numParams, params, paramTable, paramTable, preOutput, preOutput, preOutput, preOutput, score, setBackpropGradientsViewArray, setConf, setIndex, setInput, setInputMiniBatchSize, setListeners, setListeners, setMaskArray, setParam, setParams, setParams, setParamsViewArray, setParamTable, toString, transpose, type, update, update, validateInput
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
activate, activate, activate, activationMean, calcGradient, calcL1, calcL2, clone, derivativeActivation, error, feedForwardMaskArray, getIndex, getInputMiniBatchSize, getListeners, getMaskArray, merge, preOutput, preOutput, preOutput, setIndex, setInput, setInputMiniBatchSize, setListeners, setListeners, setMaskArray, transpose, type
accumulateScore, applyLearningRateScoreDecay, batchSize, conf, fit, getOptimizer, getParam, init, initParams, input, numParams, numParams, params, paramTable, paramTable, score, setBackpropGradientsViewArray, setConf, setParam, setParams, setParamsViewArray, setParamTable, update, update, validateInput
protected org.nd4j.linalg.api.ndarray.INDArray labels
protected org.nd4j.linalg.api.ndarray.INDArray inputMaskArray
protected MaskState inputMaskArrayState
public BaseOutputLayer(NeuralNetConfiguration conf)
public BaseOutputLayer(NeuralNetConfiguration conf, org.nd4j.linalg.api.ndarray.INDArray input)
public double computeScore(double fullNetworkL1, double fullNetworkL2, boolean training)
computeScore
in interface IOutputLayer
fullNetworkL1
- L1 regularization term for the entire networkfullNetworkL2
- L2 regularization term for the entire networktraining
- whether score should be calculated at train or test time (this affects things like application of
dropout, etc)public org.nd4j.linalg.api.ndarray.INDArray computeScoreForExamples(double fullNetworkL1, double fullNetworkL2)
computeScoreForExamples
in interface IOutputLayer
fullNetworkL1
- L1 regularization term for the entire network (or, 0.0 to not include regularization)fullNetworkL2
- L2 regularization term for the entire network (or, 0.0 to not include regularization)public void computeGradientAndScore()
Model
computeGradientAndScore
in interface Model
computeGradientAndScore
in class BaseLayer<LayerConfT extends BaseOutputLayer>
protected void setScoreWithZ(org.nd4j.linalg.api.ndarray.INDArray z)
setScoreWithZ
in class BaseLayer<LayerConfT extends BaseOutputLayer>
public Pair<Gradient,java.lang.Double> gradientAndScore()
Model
gradientAndScore
in interface Model
gradientAndScore
in class BaseLayer<LayerConfT extends BaseOutputLayer>
public Pair<Gradient,org.nd4j.linalg.api.ndarray.INDArray> backpropGradient(org.nd4j.linalg.api.ndarray.INDArray epsilon)
Layer
backpropGradient
in interface Layer
backpropGradient
in class BaseLayer<LayerConfT extends BaseOutputLayer>
epsilon
- w^(L+1)*delta^(L+1). Or, equiv: dC/da, i.e., (dC/dz)*(dz/da) = dC/da, where C
is cost function a=sigma(z) is activation.public Gradient gradient()
gradient
in interface Model
gradient
in class BaseLayer<LayerConfT extends BaseOutputLayer>
public org.nd4j.linalg.api.ndarray.INDArray activate(org.nd4j.linalg.api.ndarray.INDArray input, boolean training)
Layer
activate
in interface Layer
activate
in class BaseLayer<LayerConfT extends BaseOutputLayer>
input
- the input to usetraining
- train or test modepublic org.nd4j.linalg.api.ndarray.INDArray activate(org.nd4j.linalg.api.ndarray.INDArray input)
Layer
activate
in interface Layer
activate
in class BaseLayer<LayerConfT extends BaseOutputLayer>
input
- the input to usepublic org.nd4j.linalg.api.ndarray.INDArray activate()
Layer
activate
in interface Layer
activate
in class BaseLayer<LayerConfT extends BaseOutputLayer>
public org.nd4j.linalg.api.ndarray.INDArray output(org.nd4j.linalg.api.ndarray.INDArray input, boolean training)
public org.nd4j.linalg.api.ndarray.INDArray output(org.nd4j.linalg.api.ndarray.INDArray input)
public org.nd4j.linalg.api.ndarray.INDArray output(boolean training)
training
- determines if its training
the input (can either be a matrix or vector)
If it's a matrix, each row is considered an example
and associated rows are classified accordingly.
Each row will be the likelihood of a label given that examplepublic double f1Score(org.nd4j.linalg.dataset.api.DataSet data)
f1Score
in interface Classifier
data
- the data to scorepublic double f1Score(org.nd4j.linalg.api.ndarray.INDArray examples, org.nd4j.linalg.api.ndarray.INDArray labels)
f1Score
in interface Classifier
examples
- te the examples to classify (one example in each row)labels
- the true labelspublic int numLabels()
numLabels
in interface Classifier
public void fit(org.nd4j.linalg.dataset.api.iterator.DataSetIterator iter)
Classifier
fit
in interface Classifier
iter
- the iterator to train onpublic int[] predict(org.nd4j.linalg.api.ndarray.INDArray input)
predict
in interface Classifier
input
- the matrix to predictpublic java.util.List<java.lang.String> predict(org.nd4j.linalg.dataset.api.DataSet dataSet)
predict
in interface Classifier
dataSet
- to predictpublic org.nd4j.linalg.api.ndarray.INDArray labelProbabilities(org.nd4j.linalg.api.ndarray.INDArray examples)
labelProbabilities
in interface Classifier
examples
- the examples to classify (one example in each row)public void fit(org.nd4j.linalg.api.ndarray.INDArray input, org.nd4j.linalg.api.ndarray.INDArray labels)
fit
in interface Classifier
input
- the examples to classify (one example in each row)labels
- the example labels(a binary outcome matrix)public void fit(org.nd4j.linalg.dataset.api.DataSet data)
fit
in interface Classifier
data
- the data to train onpublic void fit(org.nd4j.linalg.api.ndarray.INDArray examples, int[] labels)
fit
in interface Classifier
examples
- the examples to classify (one example in each row)labels
- the labels for each example (the number of labels must matchpublic void clear()
Model
clear
in interface Model
clear
in class BaseLayer<LayerConfT extends BaseOutputLayer>
public void fit(org.nd4j.linalg.api.ndarray.INDArray data)
fit
in interface Model
fit
in class BaseLayer<LayerConfT extends BaseOutputLayer>
data
- the data to fit the model topublic void iterate(org.nd4j.linalg.api.ndarray.INDArray input)
BaseLayer
iterate
in interface Model
iterate
in class BaseLayer<LayerConfT extends BaseOutputLayer>
input
- the input to iterate onpublic org.nd4j.linalg.api.ndarray.INDArray getLabels()
IOutputLayer
IOutputLayer.setLabels(INDArray)
getLabels
in interface IOutputLayer
public void setLabels(org.nd4j.linalg.api.ndarray.INDArray labels)
IOutputLayer
setLabels
in interface IOutputLayer
labels
- Labels array to setprotected org.nd4j.linalg.api.ndarray.INDArray preOutput2d(boolean training)
protected void applyMask(org.nd4j.linalg.api.ndarray.INDArray to)
applyMask
in class BaseLayer<LayerConfT extends BaseOutputLayer>
protected org.nd4j.linalg.api.ndarray.INDArray getLabels2d()
public boolean isPretrainLayer()
Layer
isPretrainLayer
in interface Layer