14 using namespace shark;
17 template<
class AutoencoderModel>
20 std::size_t numHidden,
21 std::size_t iterations,
22 double regularisation,
29 initRandomUniform(baseModel,-0.1*std::sqrt(1.0/inputs),0.1*std::sqrt(1.0/inputs));
40 optimizer.
init(error);
41 std::cout<<
"Optimizing model: "+model.
name()<<std::endl;
42 for(std::size_t i = 0; i != iterations; ++i){
43 optimizer.
step(error);
49 int main(
int argc,
char **argv)
52 cerr <<
"usage: " << argv[0] <<
" path/to/mnist_subset.libsvm" << endl;
55 std::size_t numHidden = 200;
56 std::size_t iterations = 200;
57 double regularisation = 0.01;
58 double noiseStrengt = 0.5;
64 for(std::size_t i = 0; i != numElems; ++i){
65 for(std::size_t j = 0; j != 784; ++j){
66 if(train.
element(i).input(j) > 0.5){
77 Autoencoder1 net1 = trainAutoencoderModel<Autoencoder1>(train.
inputs(),numHidden,iterations,regularisation,noiseStrengt);
78 Autoencoder2 net2 = trainAutoencoderModel<Autoencoder2>(train.
inputs(),numHidden,iterations,regularisation,noiseStrengt);