caffe:用自己的图像数据训练模型(图片分类)

本文详细介绍了如何使用Caffe框架,结合自己的图片数据集训练一个CNN模型进行图片分类。包括数据准备(图片归一化、生成txt文件、创建leveldb数据)、计算图像均值、定义网络结构和解决训练过程中的细节问题。最后还涵盖了模型训练、恢复中断的训练以及用模型进行图片分类。
摘要由CSDN通过智能技术生成

本文参考“学习笔记 3 用自己的数据训练和测试“CaffeNet(薛开宇)”和caffe官网点这里

主要讲述——如何用自己准备的图片数据并使用caffe来训练CNN模型,用于图片分类,类似于caffe官网例程ImageNet。

本文主要分为以下几部分:

  • 数据准备
  • 计算图像均值
  • 定义网络
  • 模型训练

1.数据准备

        在 caffe_master/data 中新建文件夹 myself,在myself/train/cat文件里存放训练猫的图片 40 张(名称为cat1~cat40),在myself/train/dog文件里存放训练狗的图片 40 张(名称为cat1~cat40),在myself/val文件里测试狗的图片 10 张和测试猫的图片10张。

      根据训练和测试的图片生成train.txt文件和val.txt文件,此文件里包含文件名和分类标签(标签从0开始,0,1,2....)。

可在train文件夹路径下,使用find -name *.jpeg |cut -d '/' -f2-3 >train.txt脚本命令来生成train.txt文件。val.txt的生成方法类似。

train.txt如图所示:


         我们还需要把图片大小变成256*256的,我们可以使用lightweight mincepie package也可以使用如下的shell命令:

                                      for name in /path/to/imagenet/val/*.JPEG; do
                                                 convert -resize 256x256\! $name $name
                                      done

我们更可以不在这一步缩放,在下一步创建leveldb数据时,将examples/imagenet/create_imagenet.sh的RESIZE设置为true来更改大小。


     生成leveldb格式数据:在caffe-master/examples里创建文件夹myself,将imagenet文件夹里的create_imagenet.sh复制到该文件夹下进行修改,主要修改训练和测试路径的位置,然后在命令行的caffe-master路径下,运行 ./examples/myself/create_imagenet.sh  。运行完毕,将在myself里生成myself_train_leveldb和myself_val_leveldb。


2.计算图像均值

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值