Autoencoders
Autoencoder and Variational Autoencoder layers in Deeplearning4j — architecture, configuration, and training
AutoEncoder Layer
Key Parameters
Parameter
Method
Description
Configuration Example
import org.deeplearning4j.nn.conf.MultiLayerConfiguration;
import org.deeplearning4j.nn.conf.NeuralNetConfiguration;
import org.deeplearning4j.nn.conf.layers.AutoEncoder;
import org.deeplearning4j.nn.conf.layers.OutputLayer;
import org.deeplearning4j.nn.multilayer.MultiLayerNetwork;
import org.nd4j.linalg.activations.Activation;
import org.nd4j.linalg.lossfunctions.LossFunctions;
int inputSize = 784; // e.g. MNIST 28x28
int hiddenSize = 256;
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
.updater(new org.nd4j.linalg.learning.config.Adam(1e-3))
.list()
.layer(new AutoEncoder.Builder()
.nIn(inputSize).nOut(hiddenSize)
.activation(Activation.RELU)
.corruptionLevel(0.3)
.sparsity(0.0)
.build())
// Tie weights back to reconstruction by adding a second AutoEncoder layer reversed,
// or simply use a DenseLayer + OutputLayer for the decoder portion:
.layer(new OutputLayer.Builder(LossFunctions.LossFunction.MSE)
.nIn(hiddenSize).nOut(inputSize)
.activation(Activation.SIGMOID)
.build())
.build();
MultiLayerNetwork model = new MultiLayerNetwork(conf);
model.init();VariationalAutoencoder Layer
Builder Parameters
Method
Description
Configuration Example
Reconstruction Distributions
GaussianReconstructionDistribution
BernoulliReconstructionDistribution
ExponentialReconstructionDistribution
CompositeReconstructionDistribution
LossFunctionWrapper
Training Patterns
Pretraining (Unsupervised)
Reconstruction and Generation
Fine-tuning After Pretraining
Choosing numSamples
numSamplesAPI Reference
Class
Package
Last updated
Was this helpful?