]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - jacinto-ai/caffe-jacinto.git/commitdiff
dropout serious bugfix. Seems to be working...
authorYangqing Jia <jiayq84@gmail.com>
Thu, 10 Oct 2013 05:55:53 +0000 (22:55 -0700)
committerYangqing Jia <jiayq84@gmail.com>
Thu, 10 Oct 2013 05:55:53 +0000 (22:55 -0700)
src/caffe/layers/dropout_layer.cu
src/caffe/proto/caffe.proto
src/caffe/test/test_protobuf.cpp
src/programs/demo_mnist.cpp
src/programs/train_alexnet.cpp

index 177fe2eeea9deafdef7c3542b08851f13d9d30a1..df94f2deb24f40be067607c10119da82fcbe15cc 100644 (file)
@@ -97,9 +97,7 @@ __global__ void DropoutBackward(const int n, const Dtype* in_diff,
     Dtype* out_diff) {
   int index = threadIdx.x + blockIdx.x * blockDim.x;
   if (index < n) {
-    if (mask[index] > threshold) {
-      out_diff[index] = in_diff[index] * scale;
-    }
+    out_diff[index] = in_diff[index] * scale * (mask[index] > threshold);
   }
 }
 
index 0231ad94453e445877e3f5ee9e6070894326f85d..3961a42223fca03486815193840998cd9cc8b47c 100644 (file)
@@ -23,9 +23,8 @@ message Datum {
 }
 
 message FillerParameter {
-  // The filler type. In default we will set it to Gaussian for easy
-  // debugging.
-  optional string type = 1 [default = 'gaussian'];
+  // The filler type.
+  optional string type = 1 [default = 'constant'];
   optional float value = 2 [default = 0]; // the value in constant filler
   optional float min = 3 [default = 0]; // the min value in uniform filler
   optional float max = 4 [default = 1]; // the max value in uniform filler
index 20032687c1fb8927e191eb6b7eddf7337fa46ab5..11cdcf6904879d14d27ec75bc3f92a192dd70575 100644 (file)
@@ -26,5 +26,4 @@ TEST_F(ProtoTest, TestSerialization) {
   EXPECT_TRUE(true);
 }
 
-
 }
index f442fe6657370e672108e3bdd1c8089330794abb..37e697e923331c034a3c364a94a90db87c3487dd 100644 (file)
@@ -19,6 +19,7 @@ using namespace caffe;
 int main(int argc, char** argv) {
   cudaSetDevice(0);
   Caffe::set_mode(Caffe::GPU);
+  Caffe::set_phase(Caffe::TRAIN);
 
   NetParameter net_param;
   ReadProtoFromTextFile("data/lenet.prototxt",
@@ -34,7 +35,7 @@ int main(int argc, char** argv) {
 
   SolverParameter solver_param;
   solver_param.set_base_lr(0.01);
-  solver_param.set_display(0);
+  solver_param.set_display(1);
   solver_param.set_max_iter(6000);
   solver_param.set_lr_policy("inv");
   solver_param.set_gamma(0.0001);
@@ -63,6 +64,8 @@ int main(int argc, char** argv) {
   Net<float> caffe_traintest_net(traintest_net_param, bottom_vec);
   caffe_traintest_net.CopyTrainedLayersFrom(trained_net_param);
 
+  Caffe::set_phase(Caffe::TEST);
+
   // Test run
   double train_accuracy = 0;
   int batch_size = traintest_net_param.layers(0).layer().batchsize();
index 3fc2139cc9dd5d4c623fa6047d6cac774c74447b..99e37c3ef740a6950e54c7857e0310f4be628bd3 100644 (file)
@@ -19,6 +19,7 @@ using namespace caffe;
 int main(int argc, char** argv) {
   cudaSetDevice(0);
   Caffe::set_mode(Caffe::GPU);
+  Caffe::set_phase(Caffe::TRAIN);
 
   NetParameter net_param;
   ReadProtoFromTextFile(argv[1],
@@ -49,11 +50,11 @@ int main(int argc, char** argv) {
   SolverParameter solver_param;
   solver_param.set_base_lr(0.01);
   solver_param.set_display(1);
-  solver_param.set_max_iter(2);
+  solver_param.set_max_iter(60000);
   solver_param.set_lr_policy("fixed");
   solver_param.set_momentum(0.9);
   solver_param.set_weight_decay(0.0005);
-  solver_param.set_snapshot(1);
+  solver_param.set_snapshot(5000);
   solver_param.set_snapshot_prefix("alexnet");
 
   LOG(ERROR) << "Starting Optimization";