测试caffe安装成功_windows系统下Caffe的安装<深度学习系列>

本文详细介绍了在Windows系统下安装Caffe的CPU版本(Debug和Release)的步骤,包括修改CommonSettings.props文件,使用Visual Studio 2013编译,以及Anaconda2环境下配置Python接口。此外,还提供了训练模型和测试模型的流程,涉及数据集制作、标签创建、LMDB数据转换,以及使用AdaDelta优化器进行训练。
摘要由CSDN通过智能技术生成

一.环境的准备

Visual studio2013(编译环境)

64位Win7/10系统(操作系统)

Notepad+++中文编码器(用于写或修改代码)

二.caffe的CPU版本安装(Debug版本和Release版本)

1.从github下载Caffe的windows分支。

https://github.com/BVLC/caffe/caffe压缩包https://github.com/BVLC/caffe/archive/master.zip

2.解压压缩包,然后把把caffe-windows\windows目录下的CommonSettings.props.example文件改名为CommonSettings.props。解压后的目录

然后Notepad+++打开CommonSettings.props文件,修改如下:修改的地方

***把CpuOnlyBuild改为true

***把UseCuDNN改为false

3.用VS2013打开caffe-windows\windows\Caffe.sln。打开libcaffe的属性,设置配置属性->C/C++->常规,把"将警告视为错误"改为"否"。然后编译Debug版本。Debug版本设置

编译成功后在caffe-windows根目录下出现一个Build文件夹,该文件夹目录下有:E:\caffe-window\Build\x64\Debug编译成功图

若出现如上程序包,表示Debug编译成功,若没有,则编译不成功,需重新编译。

4. Release版本的编译:用VS2013打开caffe-windows\windows\Caffe.sln。选择Release版本,然后打开libcaffe的属性,设置配置属性->C/C++->常规,把"将警告视为错误"改为"否"。然后编译Release版本。Release版本设置

编译成功后在caffe-windows根目录下出现一个Build文件夹,该文件夹目录下有:E:\caffe-window\Build\x64\Release编译成功图

若出现如上程序包,表示Release编译成功,若没有,则编译不成功,需重新编译。第3、4步骤完成后表示CPU的caffe安装就完成了。

三、Caffe的python接口的配置

1.安装Anaconda2

a)  下载Anaconda2:https://www.anaconda.com/download/#windowsAnaconda2版本

b)安装流程参考如下网址:

http://www.cnblogs.com/IT-LearnHall/p/9486029.html

注意:需要把添加系统环境变量打√,要记得安装路径。

2.windows下编译pycaffe:

a)  进入window命令处理程序(cmd) 输入:pip install protobuf==2.6.1回车就行。安装的一定要是3.0以下版本的protobuf,Caffe只支持2.的版本。安装protobuf

3. 然后用Notepad+++打开CommonSettings.props文件,修改如下:

true

表示支持python

E:\Anaconda2\

Anaconda2的根目录(根据自己安装路径修改)

4.编译pycaffe

a)  用VS2013打开caffe-windows\windows\Caffe.sln,修改属性如下,只留下pycaffe。相关属性修改

b)   开始编译,编译成功后在E:\caffe-window\Build\x64\Release的目录下出现一个新的文件夹pycaffe(之前编译完Release是没有的)pycaffe

c)  .把caffe-windows\Build\x64\Release\pycaffe\caffe复制到Anaconda2的Lib\site-packages目录下。

d)  .把Build\x64\Release\pycaffe\caffe目录下的所有文件复制到caffe-windows\python\caffe目录下。

5.测试python是否成功

打开window命令处理程序(cmd),输入python,回车后输入import caffe测试

如图表示没有报错表示成功。

四、利用Caffe训练自己模型并测试(苹果成熟度为例)

1.数据采集及分类

从网上批量下载苹果的图片(1000张左右),然后利用Matlab测试的R、G、B的值,提取R、G、B

根据R(0-255)的值判断苹果的成熟度,

RGB 模型中,成熟苹果的 R 在180 以上,苹果成熟度分类如下:

0

100

180

在E:\caffe-window\models建立一个名为models_recognitionmodels_recognition文件夹

然后在models_recognition的目录下建立数据集文件datadata文件夹

在data的文件夹下面建立测试集(test)和训练集(train)并把三类分类建立好文件夹test and train

三种分类

训练集和测试集分别要有三种分类

2.图片标签的制作

格式:文件路径+标签

在制作标签之前在models_recognition文件目录下建立名为labels的文件夹

使用python的接口Jupyter Notebook,标签代码如下图:标签代码

文本代码:

import os   #调用程序包

caffe_root = 'E:/caffe-master/'

#训练集标签制作

i = 0

withopen(caffe_root + 'models/models_recognition/labels/train.txt','w') as train_txt:

for root,dirs,files in os.walk(caffe_root+'models/models_recognition/data/train/'):

for dir in dirs:

for root,dirs,files in os.walk(caffe_root+'models/models_recognition/data/train/'+str(dir)):

for file in files:

image_file = str(dir) + '\\' + str(file)

label = image_file + ' ' + str(i) + '\n'

train_txt.writelines(label)

i+=1

#测试集标签制作

i=0

with open(caffe_root + 'models/models_recognition/labels/test.txt','w') as test_txt:

for root,dirs,files in os.walk(caffe_root+'models/models_recognition/data/test/'):

for dir in dirs:

for root,dirs,files in os.walk(caffe_root+'models/models_recognition/data/test/'+str(dir)):

for file in files:

image_file = str(dir) + '\\' + str(file)

label = image_file + ' ' + str(i) + '\n'

test_txt.writelines(label)

i+=1

运行代码后在下面路径

E:\caffe-master\models\models_recognition\labels

生成两个文本文档标签文本

3. .数据转换,将图片转为LMDB格式

在models_recognition的目录下建立名为bat和lmdb的的文件夹,并写两个批处理文件:convert_imagest_test.bat和convert_imagest_train.bat批处理文件

convert_imagest_train.bat的程序:convert_imagest_train.bat的程序

文本代码:

E:\caffe-master\caffe-master\Build\x64\Release\convert_imageset.exe ^

--resize_height=256 --resize_width=256 ^

--shuffle ^

--backend="lmdb" ^

E:\caffe-master\caffe-master\models\models_recognition\data\train\ ^

E:\caffe-master\caffe-master\models\models_recognition\labels\train.txt ^

E:\caffe-master\caffe-master\models\models_recognition\lmdb\train\

pause

保存并双击运行

convert_imagest_test.bat的程序:convert_imagest_test.bat的程序

文本代码:

E:\caffe-master\caffe-master\Build\x64\Release\convert_imageset.exe ^

--resize_height=256 --resize_width=256 ^

--shuffle ^

--backend="lmdb" ^

E:\caffe-master\caffe-master\models\models_recognition\data\test\ ^

E:\caffe-master\caffe-master\models\models_recognition\labels\test.txt ^

E:\caffe-master\caffe-master\models\models_recognition\lmdb\test\

pause

保存并双击运行

两个批处理文件运行完成后会在lmdb文件夹生成test和train的文件并在两个文件下有lmdb的数据lmdb数据

4.修改网络模型文件

利用E:\caffe-master\models下的bvlc_reference_caffenet文件的train_val.prototxt文件训练模型,利用Notepad+++打开train_val.prototxt修改如下:相关修改

相关修改

5.修改超参数文件

修改E:\caffe-master\models下的bvlc_reference_caffenet文件的solver.prototxt文件,solver.prototxt文件

6.优化器的选择及效果比较

https://blog.csdn.net/qq_40314507/article/details/79933289各类优化前期比较

本模型我们用AdaDelta优化器

7.训练模型(GPU训练)

在bat文件夹下写一个批处理文件train.bat

代码如下:train.bat

文本代码:

E:\caffe-master\caffe-master\Build\x64\Release\caffe.exe train ^

-solver=E:\caffe-master\caffe-master\models\models_recognition/solver.prototxt

pause

双击运行train.bat

训练模型过程中训练过程

使用AdaDelta准确率越来越高了使用优化器AdaDelta后

完成

电脑显卡好的话两三个小时就可以训练好了,GPU比CPU训练速度快10-20倍左右,所以建议使用GPU训练。训练完成后在models_recognition目录下训练前新建的model生成如下文件:model

8.测试模型

把需要测试的图片放进在models_recognition目录下新建的image文件夹下(网上随机下载图片)测试图

使用python的接口Jupyter Notebook测试:Jupyter Notebook

Jupyter Notebook

文本代码:

import caffe

import numpy as np

import matplotlib.pyplot as plt

import os

import PIL

from PIL import  Image

import sys

caffe_root = 'E:/caffe-master/'

deploy_file = caffe_root+'models/models_recognition/deploy.prototxt'

model_file = caffe_root+'models/models_recognition/model/_iter_5000.caffemodel'

net = caffe.Classifier(deploy_file,

model_file,

channel_swap=(2,1,0),

raw_scale=255,

image_dims=(227, 227))

imagenet_labels_filename = caffe_root +'models/models_recognition/labels/label.txt'

labels = np.loadtxt(imagenet_labels_filename, str, )

for root,dirs,files in os.walk(caffe_root+'models/models_recognition/image'):

for file in files:

#加载要分类的图片\n",

image_file = os.path.join(root,file)

input_image = caffe.io.load_image(image_file)

image_path = os.path.join(root,file)

print(image_path)

img=Image.open(image_path)

plt.imshow(img)

plt.show()

#预测图片类别\n",

prediction = net.predict([input_image])

print 'predicted class:',prediction[0].argmax()

# 输出概率最大的前5个预测结果\n",

top_k = prediction[0].argsort()[::-1]

for node_id in top_k:

#获取分类名称\n",

human_string = labels[node_id]

#获取该分类的置信度\n",

score = prediction[0][node_id]

print('%s (score = %.5f)' % (human_string, score))

运行后结果如下:效果图a

效果图b

效果图c

结果准确率达到99.99%,这说明数据集和训练的模型非常不错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值