matlab2016a+caffe-windows+VS2013 +python2.7(win7 cpu-only)配置深度学习测试平台

matlab2016a+caffe-windows+VS2013 +python2.7(win7 cpu-only)配置深度学习测试平台

需要工具:matlab2016a、caffe-windows、vs2013、RapidEE、cmake-3.8、Anaconda2 (python 2.7)
1.安装matlab2016a
将matlab加入系统环境变量
2.安装VS2013
将VS2013加入系统环境变量
3.安装cmake-3.8
将cmake-3.8加入系统环境变量
(注意文章中提到的所有路径要以自己电脑中文件位置为准)
在这里插入图片描述

4.重启电脑,配置caffe-windows
打开caffe-windows\scripts\build_win.cmd,配置build_win.cmd,编辑修改如下内容:
在这里插入图片描述
在这里插入图片描述
然后运行cmd,进入build_win.cmd所在目录,运行build_win.cmd
出现如下问题时,解决方法:
在这里插入图片描述
该命令会在caffe-windows\scripts下创建build文件,并将libraries_v120_x64_py27_1.1.0库下载、解压到C:\Users\Dell.caffe\dependencies目录下。接着,添加环境变量:
在这里插入图片描述
5.用VS2013打开bulid文件夹下Caffe.sln,以release模式编译caffe、matlab、pycaffe,生成解决方案。
6.下载bvlc_reference_caffenet.caffemodel到caffe-windows\models\bvlc_reference_caffenet中。下载地址:http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel。
7.测试matlab
①将caffe-windows\matlab+caffe\private\Release目录下的caffe_.mexw64,拷贝到caffe-windows\matlab+caffe\private。在caffe-windows\matlab\demo 目录下,创建test_caffe.m文件,并用matlab运行该文件。

% test_caffe.m
close all;clear all;clc;
im = imread('../../examples/images/cat.jpg');%读取图片
figure;imshow(im);%显示图片
[scores, maxlabel] = classification_demo(im, 0);%获取得分第二个参数0为CPU,1为GPU
maxlabel %查看最大标签是谁
figure;plot(scores);%画出得分情况
axis([0, 999, -0.1, 0.5]);%坐标轴范围
grid on %有网格

fid = fopen('synset_words.txt', 'r');
i=0;
while ~feof(fid)
    i=i+1;
    lin = fgetl(fid);
    lin = strtrim(lin);
    if(i==maxlabel)
        fprintf('the label of %d is %s\n',i,lin)
        break
    end
end

出现如下问题:下载caffe_ilsvrc12.tar文件,并解压到caffe-windows\data\ilsvrc12。然后将synset_words.txt拷贝到caffe-windows\matlab\demo目录下。
在这里插入图片描述
出现如下问题:
在这里插入图片描述
修改caffe-windows\matlab+caffe\Net.m第72行:
在这里插入图片描述
测试结果:
在这里插入图片描述
在这里插入图片描述
②另一种测试方法,matlab路径切换到caffe-windows\matlab\demo目录下,命令行中运行caffe.run_tests()。
在这里插入图片描述
8.测试python
将caffe-windows\python 下的caffe文件夹,拷贝到Anaconda2\Lib\site-packages文件夹下。新建如下python代码文件,并运行。注意修改caffe_root为自己文件位置。

# coding=utf-8
'''
Created on 201739'''
#安装Python环境、numpy、matplotlib
import numpy as np
import matplotlib.pyplot as plt

#设置默认显示参数
plt.rcParams['figure.figsize'] = (10, 10)        # 图像显示大小
plt.rcParams['image.interpolation'] = 'nearest'  # 最近邻差值: 像素为正方形
plt.rcParams['image.cmap'] = 'gray'  # 使用灰度输出而不是彩色输出

import sys
caffe_root = 'J:/CNN/yongbin/caffe+matlab/caffe-windows/'  #该文件要从路径{caffe_root}/examples下运行,否则要调整这一行。
sys.path.insert(0, caffe_root + 'python')

import caffe

import os
if os.path.isfile(caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'):
    print 'CaffeNet found.'
else:
    print 'Downloading pre-trained CaffeNet model...'
# !../scripts/download_model_binary.py ../models/bvlc_reference_caffenet

caffe.set_mode_cpu()

model_def = caffe_root + 'models/bvlc_reference_caffenet/deploy.prototxt'
model_weights = caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'

net = caffe.Net(model_def,      # 定义模型结构
                    model_weights,  # 包含了模型的训练权值
                    caffe.TEST)     # 使用测试模式(不执行dropout)
 # 加载ImageNet图像均值 (随着Caffe一起发布的)
mu = np.load(caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy')
mu = mu.mean(1).mean(1)  #对所有像素值取平均以此获取BGR的均值像素值
print 'mean-subtracted values:', zip('BGR', mu)

# 对输入数据进行变换
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})

transformer.set_transpose('data', (2,0,1))  #将图像的通道数设置为outermost的维数
transformer.set_mean('data', mu)            #对于每个通道,都减去BGR的均值像素值
transformer.set_raw_scale('data', 255)      #将像素值从[0,255]变换到[0,1]之间
transformer.set_channel_swap('data', (2,1,0))  #交换通道,从RGB变换到BGR

# 设置输入图像大小
net.blobs['data'].reshape(50,        # batch 大小
                              3,         # 3-channel (BGR) images
                              227, 227)  # 图像大小为:227x227
image = caffe.io.load_image(caffe_root + 'examples/images/cat.jpg')
transformed_image = transformer.preprocess('data', image)
plt.imshow(image)
plt.show()

# 将图像数据拷贝到为net分配的内存中
net.blobs['data'].data[...] = transformed_image

### 执行分类
output = net.forward()  
output_prob = output['prob'][0]  #batch中第一张图像的概率值   
print 'predicted class is:', output_prob.argmax()
# 加载ImageNet标签
labels_file = caffe_root + 'data/ilsvrc12/synset_words.txt'
# if not os.path.exists(labels_file):
#    !../data/ilsvrc12/get_ilsvrc_aux.sh

labels = np.loadtxt(labels_file, str, delimiter='\t')

print 'output label:', labels[output_prob.argmax()]

出现一下问题:
在这里插入图片描述
cmd中输入conda install protobuf,安装protobuf包。
运行结果:
在这里插入图片描述
9.测试VS2013
①VS2013中选择caffe.bin、 compute_image_mean、convert_imageset,右键生成caffe.exe compute_image_mean.exe ,convert_imageset.exe。
在这里插入图片描述
②下载MNIST数据集,下载解压后,将mnist-test-leveldb与mnist-train-leveldb文件夹放到examples\mnist\文件夹下。
在这里插入图片描述
③修改examples\mnist\lenet_train_test.prototxt
在这里插入图片描述
修改examples\mnist\lenet_solver.prototxt
在这里插入图片描述
选择caffe.bin右键设为启动项目,然后右键-属性,调试-命令参数中输入
train --solver=J:/CNN/yongbin/caffe+matlab/caffe-windows/examples/mnist/lenet_solver.prototxt。
调试运行:
在这里插入图片描述
参考:win7+vs2015/13+caffe+matlab+python(CPU only)配置
https://blog.csdn.net/xiamentingtao/article/details/78132836

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值