public abstract class BaseNeuralNetwork extends Object implements NeuralNetwork, Persistable
DBN
Modifier and Type | Class and Description |
---|---|
static class |
BaseNeuralNetwork.Builder<E extends BaseNeuralNetwork> |
NeuralNetwork.OptimizationAlgorithm
Modifier and Type | Field and Description |
---|---|
protected NeuralNetConfiguration |
conf |
protected org.nd4j.linalg.api.ndarray.INDArray |
doMask |
protected org.nd4j.linalg.api.ndarray.INDArray |
hBias |
protected org.nd4j.linalg.learning.AdaGrad |
hBiasAdaGrad |
protected org.nd4j.linalg.api.ndarray.INDArray |
hBiasGradient |
protected org.nd4j.linalg.api.ndarray.INDArray |
input |
protected int |
lastMiniBatchSize |
protected NeuralNetworkOptimizer |
optimizer |
protected org.nd4j.linalg.api.ndarray.INDArray |
vBias |
protected org.nd4j.linalg.learning.AdaGrad |
vBiasAdaGrad |
protected org.nd4j.linalg.api.ndarray.INDArray |
vBiasGradient |
protected org.nd4j.linalg.api.ndarray.INDArray |
W |
protected org.nd4j.linalg.learning.AdaGrad |
wAdaGrad |
protected org.nd4j.linalg.api.ndarray.INDArray |
wGradient |
Modifier | Constructor and Description |
---|---|
protected |
BaseNeuralNetwork() |
|
BaseNeuralNetwork(org.nd4j.linalg.api.ndarray.INDArray input,
org.nd4j.linalg.api.ndarray.INDArray W,
org.nd4j.linalg.api.ndarray.INDArray hbias,
org.nd4j.linalg.api.ndarray.INDArray vbias,
NeuralNetConfiguration conf) |
Modifier and Type | Method and Description |
---|---|
protected void |
applyDropOutIfNecessary(org.nd4j.linalg.api.ndarray.INDArray input) |
protected void |
applySparsity(org.nd4j.linalg.api.ndarray.INDArray hBiasGradient)
Applies sparsity to the passed in hbias gradient
|
void |
backProp(double lr,
int iterations,
Object[] extraParams)
Backprop with the output being the reconstruction
|
void |
clearInput()
Clears the input from the neural net
|
NeuralNetwork |
clone() |
NeuralNetConfiguration |
conf() |
void |
fit(org.nd4j.linalg.api.ndarray.INDArray data)
Fit the model to the given data
|
org.nd4j.linalg.learning.AdaGrad |
getAdaGrad() |
org.nd4j.linalg.api.ndarray.INDArray |
gethBias() |
org.nd4j.linalg.learning.AdaGrad |
gethBiasAdaGrad() |
org.nd4j.linalg.api.ndarray.INDArray |
getInput() |
org.nd4j.linalg.api.ndarray.INDArray |
getvBias() |
org.nd4j.linalg.learning.AdaGrad |
getVBiasAdaGrad() |
org.nd4j.linalg.api.ndarray.INDArray |
getW() |
org.nd4j.linalg.api.ndarray.INDArray |
hBiasMean() |
protected void |
initWeights()
Initialize weights.
|
void |
iterationDone(int iteration)
Event listener for each iteration
|
double |
l2RegularizedCoefficient() |
void |
load(InputStream is)
Load (using
ObjectInputStream |
void |
merge(NeuralNetwork network,
int batchSize)
Performs a network merge in the form of
a += b - a / n
where a is a matrix here
b is a matrix on the incoming network
and n is the batch size
|
int |
numParams()
The number of parameters for the model
|
org.nd4j.linalg.api.ndarray.INDArray |
params()
Returns the parameters of the neural network
|
protected org.nd4j.linalg.api.ndarray.INDArray |
preProcessInput(org.nd4j.linalg.api.ndarray.INDArray input) |
double |
score() |
void |
setAdaGrad(org.nd4j.linalg.learning.AdaGrad adaGrad) |
void |
setConf(NeuralNetConfiguration conf) |
void |
sethBias(org.nd4j.linalg.api.ndarray.INDArray hBias) |
void |
setHbiasAdaGrad(org.nd4j.linalg.learning.AdaGrad adaGrad) |
void |
setInput(org.nd4j.linalg.api.ndarray.INDArray input) |
void |
setParams(org.nd4j.linalg.api.ndarray.INDArray params)
Set the parameters for this model.
|
void |
setvBias(org.nd4j.linalg.api.ndarray.INDArray vBias) |
void |
setVBiasAdaGrad(org.nd4j.linalg.learning.AdaGrad adaGrad) |
void |
setW(org.nd4j.linalg.api.ndarray.INDArray w) |
abstract org.nd4j.linalg.api.ndarray.INDArray |
transform(org.nd4j.linalg.api.ndarray.INDArray x)
All neural networks are based on this idea of
minimizing reconstruction error.
|
NeuralNetwork |
transpose() |
void |
update(BaseNeuralNetwork n)
Copies params from the passed in network
to this one
|
protected void |
updateGradientAccordingToParams(NeuralNetworkGradient gradient,
int iteration,
double learningRate)
Update the gradient according to the configuration such as adagrad, momentum, and sparsity
|
void |
write(OutputStream os)
Write this to an object output stream
|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getGradient, hiddenActivation, sampleHiddenGivenVisible, sampleVisibleGivenHidden
protected org.nd4j.linalg.api.ndarray.INDArray W
protected org.nd4j.linalg.api.ndarray.INDArray hBias
protected org.nd4j.linalg.api.ndarray.INDArray vBias
protected org.nd4j.linalg.api.ndarray.INDArray input
protected transient NeuralNetworkOptimizer optimizer
protected org.nd4j.linalg.api.ndarray.INDArray doMask
protected org.nd4j.linalg.api.ndarray.INDArray wGradient
protected org.nd4j.linalg.api.ndarray.INDArray vBiasGradient
protected org.nd4j.linalg.api.ndarray.INDArray hBiasGradient
protected int lastMiniBatchSize
protected org.nd4j.linalg.learning.AdaGrad wAdaGrad
protected org.nd4j.linalg.learning.AdaGrad hBiasAdaGrad
protected org.nd4j.linalg.learning.AdaGrad vBiasAdaGrad
protected NeuralNetConfiguration conf
protected BaseNeuralNetwork()
public BaseNeuralNetwork(org.nd4j.linalg.api.ndarray.INDArray input, org.nd4j.linalg.api.ndarray.INDArray W, org.nd4j.linalg.api.ndarray.INDArray hbias, org.nd4j.linalg.api.ndarray.INDArray vbias, NeuralNetConfiguration conf)
public org.nd4j.linalg.api.ndarray.INDArray params()
public double l2RegularizedCoefficient()
protected void initWeights()
public int numParams()
public void setParams(org.nd4j.linalg.api.ndarray.INDArray params)
public void backProp(double lr, int iterations, Object[] extraParams)
backProp
in interface NeuralNetwork
lr
- the learning rate to useiterations
- the max number of epochs to runextraParams
- implementation specific paramspublic void fit(org.nd4j.linalg.api.ndarray.INDArray data)
protected void applySparsity(org.nd4j.linalg.api.ndarray.INDArray hBiasGradient)
hBiasGradient
- the hbias gradient to apply toprotected void updateGradientAccordingToParams(NeuralNetworkGradient gradient, int iteration, double learningRate)
gradient
- the gradient to modifyiteration
- the current iterationlearningRate
- the learning rate for the current iterationpublic void clearInput()
clearInput
in interface NeuralNetwork
public org.nd4j.linalg.learning.AdaGrad getAdaGrad()
getAdaGrad
in interface NeuralNetwork
public void setAdaGrad(org.nd4j.linalg.learning.AdaGrad adaGrad)
setAdaGrad
in interface NeuralNetwork
public NeuralNetwork transpose()
transpose
in interface NeuralNetwork
public NeuralNetConfiguration conf()
conf
in interface NeuralNetwork
public void setConf(NeuralNetConfiguration conf)
setConf
in interface NeuralNetwork
public NeuralNetwork clone()
clone
in interface NeuralNetwork
clone
in class Object
public void merge(NeuralNetwork network, int batchSize)
NeuralNetwork
merge
in interface NeuralNetwork
network
- the network to merge withbatchSize
- the batch size (number of training examples)
to average bypublic void update(BaseNeuralNetwork n)
n
- the network to copypublic void load(InputStream is)
ObjectInputStream
load
in interface Persistable
is
- the input stream to load from (usually a file)public org.nd4j.linalg.api.ndarray.INDArray getW()
getW
in interface NeuralNetwork
public void setW(org.nd4j.linalg.api.ndarray.INDArray w)
setW
in interface NeuralNetwork
public org.nd4j.linalg.api.ndarray.INDArray gethBias()
gethBias
in interface NeuralNetwork
public void sethBias(org.nd4j.linalg.api.ndarray.INDArray hBias)
sethBias
in interface NeuralNetwork
public org.nd4j.linalg.api.ndarray.INDArray getvBias()
getvBias
in interface NeuralNetwork
public void setvBias(org.nd4j.linalg.api.ndarray.INDArray vBias)
setvBias
in interface NeuralNetwork
public org.nd4j.linalg.api.ndarray.INDArray getInput()
getInput
in interface NeuralNetwork
public void setInput(org.nd4j.linalg.api.ndarray.INDArray input)
setInput
in interface NeuralNetwork
public org.nd4j.linalg.learning.AdaGrad gethBiasAdaGrad()
gethBiasAdaGrad
in interface NeuralNetwork
public void setHbiasAdaGrad(org.nd4j.linalg.learning.AdaGrad adaGrad)
setHbiasAdaGrad
in interface NeuralNetwork
public org.nd4j.linalg.learning.AdaGrad getVBiasAdaGrad()
getVBiasAdaGrad
in interface NeuralNetwork
public void setVBiasAdaGrad(org.nd4j.linalg.learning.AdaGrad adaGrad)
setVBiasAdaGrad
in interface NeuralNetwork
public void write(OutputStream os)
write
in interface Persistable
os
- the output stream to write topublic abstract org.nd4j.linalg.api.ndarray.INDArray transform(org.nd4j.linalg.api.ndarray.INDArray x)
protected void applyDropOutIfNecessary(org.nd4j.linalg.api.ndarray.INDArray input)
public org.nd4j.linalg.api.ndarray.INDArray hBiasMean()
hBiasMean
in interface NeuralNetwork
protected org.nd4j.linalg.api.ndarray.INDArray preProcessInput(org.nd4j.linalg.api.ndarray.INDArray input)
public void iterationDone(int iteration)
IterationListener
iterationDone
in interface NeuralNetwork
iterationDone
in interface IterationListener
Copyright © 2014. All rights reserved.