当前位置:网站首页>【win10+cuda7.5+cudnn6.0安装caffe④】安装pycaffe
【win10+cuda7.5+cudnn6.0安装caffe④】安装pycaffe
2022-08-11 05:14:00 【4576号菜鸟】
一、创建python2.7的环境
因为pycaffe基于python2.7,所以我们要创建一个python2虚拟环境
conda create -n caffe python=2.7
二、编译安装pycaffe
1.修改caffe-master/window/CommonSettings.props里的代码
第13行
<PythonSupport>true</PythonSupport>
第48行
<PythonDir>D:\app\anaconda3\envs\caffe</PythonDir>
2.设置pycaffe编译方式为release,x64,是否将警告视为错误:否

3.编译pycaffe
成功后在…\caffe-master\Build\x64\Release文件夹下出现pycaffe文件夹

可能遇到如下错误:
“numpy/arrayobject.h”: No such file or directory
错误 1 error C1083: 无法打开包括文件: “numpy/arrayobject.h”: No such file or directory F:\python\window-caffe-master\caffe-master\python\caffe_caffe.cpp 10 1 pycaffe
解决方法:
安装/更新numpy库activate caffeconda install numpy
三、将pycaffe文件夹下的caffe复制到虚拟环境的anaconda3\envs\caffe\Lib\site-packages\文件夹下

四、import caffe运行一下

发现报错:
ImportError: No module named skimage.io
缺少了scikit-image包
conda install scikit-image
发现报错:
ImportError: No module named google.protobuf.internal
conda install protobuf
运行成功:
五、安装完pycaffe后,可以复制下面的代码,测试一下
下载模型:http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel
下载分类文件:synset_words.txt
(下面代码主要是导入caffe安装目录下提供的一个预训练好的模型bvlc_reference_caffenet.caffemodel,它支持1000个分类,用它来预测一张图片是什么类别,可以找一只猫来试一下!!!synset_words.txt文件是imagenet上1000个分类所对应的名称,没有的话网上找一个就行了,到处都是)
#python2环境默认的是ascii编码, python3默认的是utf-8编码。
将下面的代码保存成test.py
# coding:UTF-8
from imp import reload
import sys
print (sys.getdefaultencoding())
default_encoding ='utf-8'
if sys.getdefaultencoding()!= default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
print(sys.getdefaultencoding())
import caffe
import numpy as np
deploy='F:\python\window-caffe-master\caffe-master\models/bvlc_reference_caffenet/deploy.prototxt'#deploy文件
caffe_model='F:\python\window-caffe-master/caffe-master/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'
img='C:\Users\HQU_MATH\Desktop/1.jpg' #随机找的一张待测图片
labels_filename='C:\Users\HQU_MATH\Desktop/synset_words.txt' #类别名称文件,将数字标签转换回类别名称
net = caffe.Net(deploy,caffe_model,caffe.TEST) #加载model和network
print("load caffemodel ...")
#图片预处理设置
transformer = caffe.io.Transformer({
'data': net.blobs['data'].data.shape}) #设定图片的shape格式(1,3,28,28)
transformer.set_transpose('data',(2,0,1)) #改变维度的顺序,由原始图片(28,28,3)变为(3,28,28)
#transformer.set_mean('data',np.load(mean_file).mean(1).mean(1)) #减去均值,前面训练模型时没有减均值,这儿就不用
transformer.set_raw_scale('data',255) # 缩放到【0,255】之间
transformer.set_channel_swap('data',(2,1,0)) #交换通道,将图片由RGB变为BGR
im=caffe.io.load_image(img) #加载图片
net.blobs['data'].data[...]= transformer.preprocess('data',im) #执行上面设置的图片预处理操作,并将图片载入到blob中
#执行测试
out = net.forward()
labels = np.loadtxt(labels_filename, str, delimiter='\t',encoding='utf-8') #读取类别名称文件
prob= net.blobs['prob'].data[0].flatten()#取出最后一层(Softmax)属于某个类别的概率值,并打印
print(prob)
order=prob.argsort()[-1] #将概率值排序,取出最大值所在的序号
print('the class is:',labels[order]) #将该序号转换成对应的类别名称,并打印
在cmd中使用
activate caffe激活环境
使用cd命令进入test.py所在的文件夹
使用下方命令运行
python test.py


参考文章:https://blog.csdn.net/weixin_37621229/article/details/80547934
边栏推荐
- 什么是三次握手和四次挥手(清晰易懂)
- 【分享】一个免费语料库
- Golden Warehouse Database KingbaseGIS User Manual (6.10. Geometric Object Operation Operator)
- Summary: Cross Validation
- Flask framework learning: template rendering and Get, Post requests
- Django--20实现Redis支持、上下文以及上下文和接口的交互
- 【嵌入式开源库】MultiButton的使用,简单易用的事件驱动型按键驱动模块
- [Untitled] 2022 Amination Process Exam Questions Mock Exam Question Bank and Online Mock Exam
- 二、Jmeter 核心配置文件
- Oracle中如何用一个表的数据更新另一个表中的数据_转载
猜你喜欢

Linux中安装redis

Idea essential skills to improve work efficiency

(一)性能实时监控平台搭建(Grafana+Influxdb+Jmeter)

Flask framework learning: template rendering and Get, Post requests

(一)Docker安装Redis实战(一主二从三哨兵)

MySQL must know and must know (primary articles)

【ARM】rk3399挂载nfs报错

Redis-数据类型(基本指令、String、List、Set、Hash、ZSet、BitMaps、HyperLogLog、GeoSpatial)/发布和订阅

CentOS7静默安装Oracle11g_转载

selenuim使用cookie登录京东
随机推荐
关于ie下href有中文出现RFC 7230 and RFC 3986问题的研究
Configure checkstyle in IDEA
flaks framework learning: adding variables to the URL
UML基本概念——动态视图
Flask框架学习:模板渲染与Get,Post请求
让你代码越来越高大上的技巧——代码规范,你得知道
[No 2022 Shanghai Security Officer A Certificate Exam Question Bank and Mock Exam
2022 building welder (building a special type of work) examination questions and simulation test
二、Jmeter 核心配置文件
(3) How Redis performs stress testing
2022年Android面试中最常问的问题是什么?
软件测试风险识别
Mysql introductory exercise
Four functional interfaces
for循环使用多线程优化
ARM结构体系4:嵌入式硬件平台接口开发
【无2022上海市安全员A证考试题库及模拟考试
Prometheus :(一)基本概念
实战noVNC全过程操作(包含遇到的问题和解决)
BitLocker的解密