Re-added solver switch into the new caffe main excutable; fixed AdaGrad MNIST example
authorqipeng <pengrobertqi@163.com>
Tue, 26 Aug 2014 19:01:26 +0000 (12:01 -0700)
committerJeff Donahue <jeff.donahue@gmail.com>
Mon, 1 Sep 2014 18:33:41 +0000 (11:33 -0700)
examples/mnist/mnist_autoencoder_solver_adagrad.prototxt
examples/mnist/train_mnist_autoencoder_adagrad.sh
tools/caffe.cpp

index 6193351..fa7d65c 100644 (file)
@@ -9,7 +9,6 @@ max_iter: 4000000
 weight_decay: 0.0005
 snapshot: 10000
 snapshot_prefix: "mnist_autoencoder_train"
-momentum: 0.9
 # solver mode: CPU or GPU
 solver_mode: GPU
 solver_type: ADAGRAD
index 628c74b..25a48c3 100755 (executable)
@@ -1,4 +1,4 @@
 #!/bin/bash
 TOOLS=../../build/tools
 
-$TOOLS/caffe.bin train --solver=mnist_autoencoder_solver.prototxt
+$TOOLS/caffe.bin train --solver=mnist_autoencoder_solver_adagrad.prototxt
index 5b3ad0b..9958ac3 100644 (file)
@@ -88,7 +88,7 @@ int train() {
   caffe::ReadProtoFromTextFileOrDie(FLAGS_solver, &solver_param);
 
   LOG(INFO) << "Starting Optimization";
-  caffe::SGDSolver<float> solver(solver_param);
+  shared_ptr<caffe::Solver<float>> solver(caffe::GetSolver<float>(solver_param));
 
   // Set device id and mode
   if (FLAGS_gpu >= 0) {
@@ -102,13 +102,13 @@ int train() {
 
   if (FLAGS_snapshot.size()) {
     LOG(INFO) << "Resuming from " << FLAGS_snapshot;
-    solver.Solve(FLAGS_snapshot);
+    solver->Solve(FLAGS_snapshot);
   } else if (FLAGS_weights.size()) {
     LOG(INFO) << "Finetuning from " << FLAGS_weights;
-    solver.net()->CopyTrainedLayersFrom(FLAGS_weights);
-    solver.Solve();
+    solver->net()->CopyTrainedLayersFrom(FLAGS_weights);
+    solver->Solve();
   } else {
-    solver.Solve();
+    solver->Solve();
   }
   LOG(INFO) << "Optimization Done.";
   return 0;