12 using namespace shark;
15 template<
class AutoencoderModel>
18 std::size_t numHidden,
19 std::size_t iterations,
35 optimizer.
init(error);
36 std::cout<<
"Optimizing model: "+model.
name()<<std::endl;
37 for(std::size_t i = 0; i != iterations; ++i){
38 optimizer.
step(error);
45 int main(
int argc,
char **argv)
48 cerr <<
"usage: " << argv[0] <<
" path/to/mnist_subset.libsvm" << endl;
51 std::size_t numHidden = 200;
52 std::size_t iterations = 200;
53 double regularisation = 0.01;
59 for(std::size_t i = 0; i != numElems; ++i){
60 for(std::size_t j = 0; j != 784; ++j){
61 if(train.
element(i).input(j) > 0.5){
74 Autoencoder1 net1 = trainAutoencoderModel<Autoencoder1>(train.
inputs(),numHidden,iterations,regularisation);
75 Autoencoder2 net2 = trainAutoencoderModel<Autoencoder2>(train.
inputs(),numHidden,iterations,regularisation);
76 Autoencoder3 net3 = trainAutoencoderModel<Autoencoder3>(train.
inputs(),numHidden,iterations,regularisation);
77 Autoencoder4 net4 = trainAutoencoderModel<Autoencoder4>(train.
inputs(),numHidden,iterations,regularisation);