I use caffe tool ‘convert_imageset' to transform my image data to lmdb,there were noting wrong on the terminal log,but the file of lmdb is 0 #5752

Open
ltaoj opened this Issue Jul 7, 2017 · 4 comments

Comments

Projects
None yet
2 participants

ltaoj commented Jul 7, 2017 edited

this is my create_imagenet.sh, but the imagenet1907_train_lmdb &
imagenet1907_val_lmdb file size are zero. why?

#!/usr/bin/env sh
# 
# All modification made by Intel Corporation: © 2016 Intel Corporation
# 
# All contributions by the University of California:
# Copyright (c) 2014, 2015, The Regents of the University of California (Regents)
# All rights reserved.
# 
# All other contributions:
# Copyright (c) 2014, 2015, the respective contributors
# All rights reserved.
# For the list of contributors go to https://github.com/BVLC/caffe/blob/master/CONTRIBUTORS.md
# 
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# 
#     * Redistributions of source code must retain the above copyright notice,
#       this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above copyright
#       notice, this list of conditions and the following disclaimer in the
#       documentation and/or other materials provided with the distribution.
#     * Neither the name of Intel Corporation nor the names of its contributors
#       may be used to endorse or promote products derived from this software
#       without specific prior written permission.
# 
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Create the imagenet lmdb inputs
# N.B. set the path to the imagenet train + val data dirs
set -e

EXAMPLE=examples/imagenet1907
DATA=data/imagenet1907
TOOLS=build/tools

TRAIN_DATA_ROOT=/usr/local/caffe/data/imagenet1907/train/
VAL_DATA_ROOT=/usr/local/caffe/data/imagenet1907/val/

# Set RESIZE=true to resize the images to 256x256. Leave as false if images have
# already been resized using another tool.
RESIZE=true
if $RESIZE; then
  RESIZE_HEIGHT=128
  RESIZE_WIDTH=128
else
  RESIZE_HEIGHT=0
  RESIZE_WIDTH=0
fi

# Set ENCODE=true to encode the images as compressed JPEGs stored in the LMDB.
# Leave as false for uncompressed (raw) images.
ENCODE=true
if $ENCODE; then
  ENCODE_FLAG='--encoded=true'
  ENCODE_TYPE_FLAG='--encode_type=jpg'
else
  ENCODE_FLAG='--encoded=false'
  ENCODE_TYPE_FLAG=''
fi

if [ ! -d "$TRAIN_DATA_ROOT" ]; then
  echo "Error: TRAIN_DATA_ROOT is not a path to a directory: $TRAIN_DATA_ROOT"
  echo "Set the TRAIN_DATA_ROOT variable in create_imagenet.sh to the path" \
       "where the ImageNet training data is stored."
  exit 1
fi

if [ ! -d "$VAL_DATA_ROOT" ]; then
  echo "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"
  echo "Set the VAL_DATA_ROOT variable in create_imagenet.sh to the path" \
       "where the ImageNet validation data is stored."
  exit 1
fi

echo "Creating train lmdb..."

rm -rf $EXAMPLE/imagenet1907_train_lmdb
rm -rf $EXAMPLE/imagenet1907_val_lmdb

GLOG_logtostderr=1 $TOOLS/convert_imageset \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
    $ENCODE_FLAG \
    $ENCODE_TYPE_FLAG \
    --shuffle \
    $TRAIN_DATA_ROOT \
    $DATA/train.txt \
    $EXAMPLE/imagenet1907_train_lmdb

echo "Creating val lmdb..."

GLOG_logtostderr=1 $TOOLS/convert_imageset \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
    $ENCODE_FLAG \
    $ENCODE_TYPE_FLAG \
    --shuffle \
    $VAL_DATA_ROOT \
    $DATA/val.txt \
    $EXAMPLE/imagenet1907_val_lmdb

echo "Done."

Could you please post the output of this script.
Please also check if train.txt and val.txt are available under - data/imagenet1907.

ltaoj commented Jul 13, 2017

@deepali-c This is the output of this script,the size of the file imagenet1907_train_lmdb and imagenet1907_val_lmdb is 0,but the train_mean.binaryproto and val_mean.binaryproto has a size of 192kb.train.txt and val.txt are available under - data/imagenet1907.Besides, I can run the caffemodel to predict normally.

Creating train lmdb...
I0713 20:18:57.514729 17285 convert_imageset.cpp:123] Shuffling data
I0713 20:18:57.516625 17285 convert_imageset.cpp:126] A total of 1707 images.
I0713 20:18:57.518802 17285 db_lmdb.cpp:72] Opened lmdb examples/imagenet1907/imagenet1907_train_lmdb
I0713 20:19:25.354818 17285 convert_imageset.cpp:184] Processed 1000 files.
I0713 20:19:42.839772 17285 convert_imageset.cpp:190] Processed 1707 files.
Creating val lmdb...
I0713 20:19:43.141077 17288 convert_imageset.cpp:123] Shuffling data
I0713 20:19:43.141448 17288 convert_imageset.cpp:126] A total of 200 images.
I0713 20:19:43.143028 17288 db_lmdb.cpp:72] Opened lmdb examples/imagenet1907/imagenet1907_val_lmdb
I0713 20:19:47.528590 17288 convert_imageset.cpp:190] Processed 200 files.
Compute train mean...
Compute val mean...
Done.

Your script works fine at my end.

ls -l examples/imagenet1907/imagenet1907_train_lmdb
total 61832
-rw-rw-r-- 1 <username> <username> 63307776 Jul 13 07:54 data.mdb
-rw-rw-r-- 1  <username> <username> 8192 Jul 13 07:54 lock.mdb

ltaoj commented Jul 13, 2017 edited

@deepali-c OK, thank you very much! sudo ls -l imagenet1907_train_lmdb works well on my end, too.It seems that my os has problem.
总用量 21188
-rw-r--r-- 1 21688320 7月 13 20:31 data.mdb
-rw-r--r-- 1 8192 7月 13 20:31 lock.mdb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment