Code that was used to finetune with reasonable success
authorRoss Girshick <rbg@eecs.berkeley.edu>
Tue, 7 Jan 2014 23:04:19 +0000 (15:04 -0800)
committerEvan Shelhamer <shelhamer@imaginarynumber.net>
Thu, 20 Mar 2014 02:06:05 +0000 (19:06 -0700)
models/pascal_finetune.prototxt
models/pascal_finetune_solver.prototxt
models/pascal_finetune_val.prototxt
src/caffe/layers/window_data_layer.cpp

index 1ff9dab..5ee9e8a 100644 (file)
@@ -3,7 +3,7 @@ layers {
   layer {
     name: "data"
     type: "window_data"
-    source: "/work5/rbg/convnet-selective-search/selective-search-data/window_file_2007_train.txt"
+    source: "/work5/rbg/convnet-selective-search/selective-search-data/window_file_2007_trainval.txt"
     meanfile: "/home/rbg/working/caffe-rbg/data/ilsvrc2012_mean.binaryproto"
     batchsize: 128
     cropsize: 227
index 14925ad..7ea9c5d 100644 (file)
@@ -1,13 +1,13 @@
 train_net: "examples/pascal_finetune.prototxt"
 test_net: "examples/pascal_finetune_val.prototxt"
 test_iter: 100
-test_interval: 500
+test_interval: 1000
 base_lr: 0.0001
 lr_policy: "step"
 gamma: 0.1
-stepsize: 10000
+stepsize: 20000
 display: 20
-max_iter: 400000
+max_iter: 100000
 momentum: 0.9
 weight_decay: 0.0005
 snapshot: 10000
index 1cea488..c73cf8f 100644 (file)
@@ -3,7 +3,7 @@ layers {
   layer {
     name: "data"
     type: "window_data"
-    source: "/work5/rbg/convnet-selective-search/selective-search-data/window_file_2007_val.txt"
+    source: "/work5/rbg/convnet-selective-search/selective-search-data/window_file_2007_test.txt"
     meanfile: "/home/rbg/working/caffe-rbg/data/ilsvrc2012_mean.binaryproto"
     batchsize: 128
     cropsize: 227
index 366ae0b..a2346bf 100644 (file)
@@ -233,7 +233,7 @@ void WindowDataLayer<Dtype>::SetUp(const vector<Blob<Dtype>*>& bottom,
       label_hist[window[WindowDataLayer::LABEL]]++;
     }
 
-    if (image_index % 1000 == 0) {
+    if (image_index % 1 == 0) {
       LOG(INFO) << "num: " << image_index << " "
           << image_path << " " 
           << image_size[0] << " "
@@ -243,6 +243,8 @@ void WindowDataLayer<Dtype>::SetUp(const vector<Blob<Dtype>*>& bottom,
     }
   }
 
+  LOG(INFO) << "Number of images: " << image_index;
+
   for (int i = 0; i < 21; ++i) {
     LOG(INFO) << "class " << i << " has " << label_hist[i] << " samples";
   }