10     std::cout << 
"Vanilla AutoEncoder Training:\n";
 
   11     std::vector<std::vector<double>> ae_training_data = {{1, 0, 0},
 
   14     ae.train(ae_training_data, 1000);
 
   17     std::cout << 
"\nTesting Vanilla AutoEncoder:\n";
 
   18     std::vector<double> test_input = {1, 1, 0};
 
   19     std::vector<double> output = ae.forward(test_input);
 
   20     std::cout << 
"Autoencoder Output:\n";
 
   21     for (
double val : output) {
 
   22         std::cout << val << 
" ";
 
   28     std::cout << 
"\n\nSparse AutoEncoder Training:\n";
 
   29     std::vector<std::vector<double>> ae_training_data_sparse = {{1, 0, 0},
 
   32     sparse_ae.train(ae_training_data_sparse, 1000);
 
   38     std::cout << 
"\nDenoising AutoEncoder Training:\n";
 
   39     denoise_ae.train(ae_training_data, 1000);
 
   45     std::cout << 
"\nContractive AutoEncoder Training:\n";
 
   46     contractive_ae.train(ae_training_data, 1000);
 
   47     contractive_ae.display();
 
   52     std::cout << 
"\nRecurrent AutoEncoder Training:\n";
 
   53     std::vector<std::vector<double>> recurrent_ae_training_data = {{1, 0, 0},
 
   56     recurrent_ae.train(recurrent_ae_training_data, 1000);
 
   57     recurrent_ae.display();
 
A simple implementation of a vanilla autoencoder.
ContractiveAutoEncoder class, a derived class from AutoEncoder.
DenoisingAutoEncoder class, a derived class from AutoEncoder.
RecurrentAutoEncoder class, a derived class from AutoEncoder.
SparseAutoEncoder class, a derived class from AutoEncoder.