使用caffe的工具convert_imageset将数据集转换为lmdb数据库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhongqianli/article/details/85603365

本文预先将cifar10保存为图像格式,分别存放于train和test文件夹中,其中的子文件夹0~9分别代表类标签。

使用create_list.sh创建数据集的列表文件

#!/usr/bin/env sh

DATA="/home/tim/datasets/cifar10"

cd $DATA

rm -f train.txt
rm -f test.txt

find train/0 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 0/" >> train.txt
find train/1 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 1/" >> train.txt
find train/2 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 2/" >> train.txt
find train/3 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 3/" >> train.txt
find train/4 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 4/" >> train.txt
find train/5 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 5/" >> train.txt
find train/6 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 6/" >> train.txt
find train/7 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 7/" >> train.txt
find train/8 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 8/" >> train.txt
find train/9 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 9/" >> train.txt


find test/0 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 0/" >> test.txt
find test/1 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 1/" >> test.txt
find test/2 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 2/" >> test.txt
find test/3 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 3/" >> test.txt
find test/4 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 4/" >> test.txt
find test/5 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 5/" >> test.txt
find test/6 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 6/" >> test.txt
find test/7 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 7/" >> test.txt
find test/8 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 8/" >> test.txt
find test/9 -name "*" | grep -i -E ".bmp|.jpg|.png" | sed "s/$/ 9/" >> test.txt

使用create_lmdb.sh创建lmdb数据库

注意设置-shuffle参数为true

#!/usr/bin/env sh
# This script converts the data into lmdb/leveldb format,
# depending on the value assigned to $BACKEND.
set -e

EXAMPLE="/home/tim/datasets/cifar10"
DATA="/home/tim/datasets/cifar10"
BUILD=$CAFFE_ROOT/build/tools

GRAY=false

RESIZE=false
if $RESIZE; then
  RESIZE_HEIGHT=32
  RESIZE_WIDTH=32
else
  RESIZE_HEIGHT=0
  RESIZE_WIDTH=0
fi

BACKEND="lmdb"

echo "Creating ${BACKEND}..."

rm -rf $EXAMPLE/train_${BACKEND}
rm -rf $EXAMPLE/test_${BACKEND}

$BUILD/convert_imageset -backend=$BACKEND -gray=$GRAY -resize_width=$RESIZE_WIDTH -resize_height=$RESIZE_HEIGHT -shuffle=true $DATA/ $DATA/train.txt  $EXAMPLE/train_${BACKEND}
$BUILD/convert_imageset -backend=$BACKEND -gray=$GRAY -resize_width=$RESIZE_WIDTH -resize_height=$RESIZE_HEIGHT -shuffle=true $DATA/ $DATA/test.txt  $EXAMPLE/test_${BACKEND}

echo "Computing image mean..."

$BUILD/compute_image_mean -backend=$BACKEND \
  $EXAMPLE/train_${BACKEND} $EXAMPLE/mean.binaryproto

echo "Done."

猜你喜欢

转载自blog.csdn.net/zhongqianli/article/details/85603365