default backend to lmdb for image conversion and mean computation
authorEvan Shelhamer <shelhamer@imaginarynumber.net>
Sun, 21 Sep 2014 22:20:47 +0000 (15:20 -0700)
committerEvan Shelhamer <shelhamer@imaginarynumber.net>
Sun, 21 Sep 2014 22:35:16 +0000 (15:35 -0700)
lmdb is 10-15% faster than leveldb although it takes ~1.1x the storage.
This is usually irrelevant in prefetching since both are fast enough,
but more important lmdb allows multiple, concurrent reads for training
and evaluation several models on the same data.

tools/compute_image_mean.cpp
tools/convert_imageset.cpp

index fe3497f..20f1ff8 100644 (file)
@@ -17,12 +17,12 @@ using std::max;
 int main(int argc, char** argv) {
   ::google::InitGoogleLogging(argv[0]);
   if (argc < 3 || argc > 4) {
-    LOG(ERROR) << "Usage: compute_image_mean input_leveldb output_file"
+    LOG(ERROR) << "Usage: compute_image_mean input_db output_file"
                << " db_backend[leveldb or lmdb]";
     return 1;
   }
 
-  string db_backend = "leveldb";
+  string db_backend = "lmdb";
   if (argc == 4) {
     db_backend = string(argv[3]);
   }
index 1c58f3d..7e1e83d 100644 (file)
@@ -1,17 +1,12 @@
-// This program converts a set of images to a leveldb by storing them as Datum
-// proto buffers.
+// This program converts a set of images to a lmdb/leveldb by storing them
+// as Datum proto buffers.
 // Usage:
-//   convert_imageset [-g] ROOTFOLDER/ LISTFILE DB_NAME RANDOM_SHUFFLE[0 or 1]
-//                     [resize_height] [resize_width]
+//   convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME
+//
 // where ROOTFOLDER is the root folder that holds all the images, and LISTFILE
 // should be a list of files as well as their labels, in the format as
 //   subfolder1/file1.JPEG 7
 //   ....
-// if RANDOM_SHUFFLE is 1, a random shuffle will be carried out before we
-// process the file lines.
-// Optional flag -g indicates the images should be read as
-// single-channel grayscale. If omitted, grayscale images will be
-// converted to color.
 
 #include <gflags/gflags.h>
 #include <glog/logging.h>
@@ -38,7 +33,7 @@ DEFINE_bool(gray, false,
     "When this option is on, treat images as grayscale ones");
 DEFINE_bool(shuffle, false,
     "Randomly shuffle the order of images and their labels");
-DEFINE_string(backend, "leveldb", "The backend for storing the result");
+DEFINE_string(backend, "lmdb", "The backend for storing the result");
 DEFINE_int32(resize_width, 0, "Width images are resized to");
 DEFINE_int32(resize_height, 0, "Height images are resized to");