caffe使用教程

本文详细介绍了在macOS和Ubuntu上安装Caffe的步骤,包括使用homebrew安装依赖、下载源代码和配置文件。此外,还讲解了数据集的准备、转换为lmdb格式,以及如何计算图像均值。最后,文章阐述了如何修改网络配置文件并进行模型训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Caffe使用教程
Caffe安装
(1)macOS安装
1.安装homebrew包管理工具
点击http://brew.sh/进入homebrew官网,复制安装命令到终端,等待安装
2.安装完成后,利用homebrew下载caffe依赖包,复制以下命令到终端
brew install -vd snappy leveldb gflags glog szip lmdb
brew install homebrew/science
brew install hdf5 opencv
brew install protobuf boost wget
3.下载caffe源代码,复制一下命令到终端
git clone https://github.com/bvlc/caffe.git
注:若以上所需无下载速度,请翻墙下载
ubuntu安装

Caffe调试
1.修改配置文件,复制以下命令到命令行
cd caffe/
mv Makefile.config.example Makefile.config
打开Makfile.config 找到#CPU_ONLY :=1,将#删除
CPU_ONLY :=1
执行make -j编译
注:可以指定线程,make -j8开启八线程编译
若其中报错,请自行百度
数据集准备
准备图片进行分类,首先需准备不同类别的图片
首先将图片分为两批次:训练集和验证集,比例大约为5:1
比如有五种图片需要进行分类,分别是cat,dog,fish,rabbit,mouse,则分别新建五个文件夹分别存放这几类图片,并将五个文件夹再放入一个文件夹,命名为train,即train文件夹下分别有cat,dog,fish,rabbit,mouse五个文件夹,五个文件夹下有各个类别的图片
2新建一个文件夹命名为val,即我们需要的验证集,将val文件夹放置在和train文件夹同一个目录下如myself目录,从train文件,抽取1/6图片放入val文件夹下,也可在此之前提前分好。
3在train和val文件夹下创建train.txt和val.txt,以上总步骤如下图所示
这里写图片描述
用python或脚本将train文件夹中的文件路径文件名和文件标签记录到train.txt中,val.txt同理,其中文件名和标签之间用空格隔开,标签应该从0开始,假设dog目录下有dog1和dog2两张图片,cat下有cat1和cat2两张图片,其他类似。则train.txt中的条目如下图所示
这里写图片描述
val.txt文件如下图所示
这里写图片描述
数据集转换
1.将图片转换成lmdb格式,lmdb是caffe的输入格式,我们caffe的examples文件夹中create_imagenet.sh脚本来转换格式,也可以自己编写脚本,格式类似。
2.新建一个文件夹用于存放我们需要用到的网络和lmdb和其他脚本文件
3.修改create_imagenet.sh,将EXAMPLES中的路径改成自己网络的存放路径
DATA路径替换成自己存放图片的路径,TOOLS不变,将TRAIN_DATA_ROOT文件路径 改为train文件夹的路径,VAL_DATA_ROOT同理,可以看到TRAIN_DATA_ROOT的路径和train.txt文件中路径合起来刚好是图片的完整路径,VAL_DATA_ROOT同理
3.将RESIZE改为true,我们调整图片大小使得输入维度减少,增加训练速度
这里写图片描述

4.GLOG路径中最后$EXAMPLES即是产生的lmdb文件,一个是train一个是val,路径保存到上图中的EXAMPLES的路径下,可自行修改lmdb名字
这里写图片描述
下面用lmdb生成meanfile,计算图像均值,减少输入,可以用imagenet中的make_imagenet_mean.sh做修改,并拷贝到自己的网络目录中,也可以自己写脚本
compute_image_mean为计算图像均值工具,EXANPLES后为刚生成的lmdb文件,若自己修改了上图文本中的lmdb名字,请将名字对应,生成的meanfile是DATA路径下的binaryproto,可自行修改binaryproto名字
这里写图片描述
配置文件修改
1.我们可以选用caffe自带的网络,也可以用自己的网络,下面我选用alexnet网络为例,将models中的alex网络拷贝到自己的文件夹中,修改其中的solver.prototxt文件和train_val.prototxt文件,这两个文件也可以自己写
2.将我们需用的网络net的完整路径修改,里面各项参数都可以自行修改,在此不一一解释,具体意义请自行查略,snapshot为model保存路径,修改为网络的完整路径,solver_mode修改为cpu
这里写图片描述
3.修改train_val.prototxt文件,里面参数都可以自行修改,就不一一介绍,最主要的修改的地方,第一mean_file路径修改为自己保存binaryproto的绝对路径。下图中的source和mean_file的路径同上。
这里写图片描述
训练网络
命令行输入以下命令
./build/tools/caffe train –solver=/Users/Songie/caffe/examples/myself/bvlc_alexnet/solver.prototxt
sovler路径修改为自己solver的绝对路径
使用model
命令行输入以下命令

Model参数为定义网络的prototxt文件的绝对路径,weights参数为已经训练好的权重和偏置的model,iterations为你想定义的迭代次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值