【caffe】使用caffe训练自己的数据

1.生成lmdb

caffe在安装包里提供了用于生成lmdb数据的脚本,在使用时只需修改其中几个参数。

打开create_imagenet.sh

需要修改的参数有以下几个:

EXAMPLE=examples/imagenet/project#工作文件夹的路径
DATA=examples/imagenet/project
TOOLS=build/tools#caffe的安装路径

TRAIN_DATA_ROOT=examples/imagenet/project/train/#数据存放的路径
VAL_DATA_ROOT=examples/imagenet/project/test/

#############

RESIZE=true
if $RESIZE; then #对数据resizes,设置长宽
  RESIZE_HEIGHT=256
  RESIZE_WIDTH=256
else
  RESIZE_HEIGHT=0
  RESIZE_WIDTH=0

##############

GLOG_logtostderr=1 $TOOLS/convert_imageset \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
    --shuffle \
    $TRAIN_DATA_ROOT \
    $DATA/train.txt \#打好标签的txt文件,从train里的子文件夹目录开始写
    $EXAMPLE/train_lmdb#生成的lmdb的位置

echo "Creating val lmdb..."

GLOG_logtostderr=1 $TOOLS/convert_imageset \
    --resize_height=$RESIZE_HEIGHT \
    --resize_width=$RESIZE_WIDTH \
    --shuffle \
    $VAL_DATA_ROOT \
    $DATA/test.txt \
    $EXAMPLE/test_lmdb

echo "Done."

即几个文件夹的路径(我的路径是把所有文件放在/examples/imagenet/project/,如果自己不太会设置路径,可以照我的来),对数字resize的大小(设置长宽)。其中train.txt,test.txt需要自己生成。

注意生成出来的lmdb文件,如果大小只有几k,那就是生成失败了,一般是路径没有写对。我使用3G的数据制作出来的训练集有7.2G。

使用方法:

打开命令行,进入caffe的安装路径(因为上面的路径都写的是caffe安装路径下的相对路径),运行修改好的脚本create_imagenet.sh。

2.生成均值文件

据说使用均值文件进行训练效果会更好(部分网络默认使用均值文件)。

找到caffe安装包里的make_imagenet_mean.sh,或自己新建一个txt,将以下代码拷进去,后缀修改成.sh即可。

要修改的地方仍然是几个路径,包括数据存放的路径,和生成的路径。

#!/usr/bin/env sh
# Compute the mean image from the imagenet training lmdb
# N.B. this is available in data/ilsvrc12

EXAMPLE=examples/imagenet/project
DATA=examples/imagenet/project
TOOLS=build/tools

$TOOLS/compute_image_mean $EXAMPLE/train_lmdb \
  $DATA/imagenet_mean.binaryproto

echo "Done."

3. 训练数据

新建一个txt文件,拷贝以下代码,后缀修改为.sh。运行这个

#!/usr/bin/env sh
#set -e
./build/tools/caffe train \
    --solver=examples/imagenet/project/solver.prototxt \
    2>&1 | tee train.log

猜你喜欢

转载自blog.csdn.net/Chen_Swan/article/details/85330881