㈠ 在VS2013中打开caffe源代码,都能编译成功,下一步应该怎么训练模型
你想调用你的模型,最简单的办法是看examples/cpp_classification里面的cpp文件,那是教你如何调用caffe获取分类结果的...(你没接触过caffe的话,建议你直接按照这个文件来操作可能会比较简单,下面我的代码我也不知道没接触过caffe的人看起来难度会有多大)
不过那个代码我看着不太习惯,所以之前自己稍微写了一个简易的版本,不知道怎么上传附件,懒人一个就直接把代码贴在最后了。
先简单解释一下如何使用,把这个代码复制到一个头文件中,然后放在examples里面一个自己创建的文件夹里面,然后写一个main函数调用这个类就可以了,比如:
复制,保存到caffe/examples/myproject/net_operator.hpp,然后同目录下写一个main.cpp,在main函数里面#include "net_operator.hpp",就可以使用这个类了:
const string net_prototxt = "..."; // 你的网络的prototxt文件,用绝对路径,下面同理
const string pre_trained_file = "..."; // 你训练好的.caffemodel文件
const string img_path = "..."; // 你要测试的图片路径
// 创建NetOperator对象
NetOperator net_operator(net_prototxt, pre_trained_file);
Blob<float> *blob = net_operator.processImage(img_path);
// blob就得到了最后一层的输出结果,至于blob里面是怎么存放数据的,你需要去看看官网对它的定义
写完main.cpp之后,到caffe目录下,make,然后它会编译你写的文件,对应生成的可执行文件。比如按我上面写的那样,make之后就会在caffe/build/examples/myproject文件夹里面生成一个main.bin,执行这个文件就可以了。因为生成的可执行文件并不是直接在代码目录下,所以前面我建议你写的路径用绝对路径
另外如果你要获取的不是最后一层的输出,你需要修改一下processImage函数的返回值,通过NetOperator的成员变量net_来获取你需要的blob,比如有个blob名称为"label",你想获取这个blob,可以通过net_->blob_by_name("label")来获取,当然获取到的是shared_ptr<Blob<float> >类型的,搜一下boost shared_ptr就知道跟普通指针有什么不同了
㈡ 按《深度学习21天实战caffe》,在win7环境下,直接编译cpu模式caffe,编译出错。详见图片。
1.配置环境我在自己的笔记本配置的caffe,配置的环境为:Windows 7 64位 + cuda6.5 + Opencv2.49 +VS2013。假设在配置caffe之前,你已经准备好这些。本文中将给出一些编译好的依赖库,如果你也是用的Windows 7 64位+VS2013,可以直接使用。2.准备依赖库
在Windows下配置caffe,一个很主要的问题就是依赖库的编译。不像在Ubuntu下那么方便,在Windows下,依赖库都需要使用vs2013进行编译才能使用。下面我将介绍caffe需要的依赖库(如果你也是win7 64位+VS2013,可以直接使用我提供的依赖库)。
2.1 boost
boost可以下载源码进行编译,也可以直接下载安装文件。我使用的是后者,方便、快捷。
我使用的是:boost_1.56_0-msvc-12.0-64.exe
注意下载适合你的配置环境的boost版本即可。
下载完毕,双击运行安装文件即可。
2.2 Glog+Gflag+Protobuf+LevelDB+HDF5+LMDB+Openblas。
㈢ 微软官方caffe和老版本的区别是什么
caffe官网:berkeleyvision.org/" target="_blank">http://caffe.berkeleyvision.org/
1.最原始的最开始版本:伯克利BVLC版
https://github.com/BVLC/caffe
主要在Linux上运行,有matlab和python接口
傻瓜都能学会的配置教程:Caffe+Ubuntu14.04+CUDA6.5新手安装配置指南:
http://www.haodaima.net/art/2823705
http://www.cnblogs.com/platero/p/3993877.html
学习教程:http://suanfazu.com/t/caffe/281
2.贾扬清大大自己的版本:https://github.com/Yangqing/caffe
3.caffe-for-windows基本版:https://github.com/niuheng/caffe
windows+caffe+vs2013+cuda6.5配置记录:http://www.bubuko.com/infodetail-902302.html
caffe for windows 训练cifar10:http://www.th7.cn/system/win/201411/77318.shtml
Windows下编译Caffe并编译Matlab接口:http://www.th7.cn/system/win/201504/102914.shtml
4.caffe window改进版运行在VS2013:https://github.com/initialneil/caffe-vs2013
配置:https://initialneil.wordpress.com/
5.我目前用的版本(happynear大神的):https://github.com/happynear/caffe-windows
配置:http://blog.csdn.net/happynear/article/details/45372231
㈣ 在caffe里怎么编译python
直接看代码啊,看caffe/python/caffe文件夹下面的py代码,代码中有各模块的功能以及使用说明。如果不想受限于其提供的接口,可以自己 使用opencv的python接口处理io问题,功能更强大,主要是读图、预处理的操作,理解后用opencv也很容易实现。
㈤ 为什么每次从python导入caffe都要编译接口
原因
安装python:yum install python-devel.x86_64
Makefile.config修改WITH_PYTHON_LAYER := 1 #取消注释
安装python依赖如果安装 Anaconda Python可以免去下面步骤cd $CAFFE_ROOT/python
for req in $(cat requirements.txt); do pip install $req; done
编译make cleanmake pycaffe -j32make test -j32
使Caffe的python接口永久生效vim /etc/profileprofile最后添加: export PYTHONPATH=/root/$CAFFE_ROOT/python:$PYTHONPATHsource /etc/profile
㈥ 如何自己编译 Caffe for Faster R-CNN
Caffe刚出来的时候我就一直再用了,前后大概用了RCNN,Fast-RCNN, 目前在等待Faster-rcnn的代码release! 回答下你的问题,目前我已经基于Fast-rcnn实现了caltech行人检测数据库与kitti数据库的车辆与行人检测,总的来说效果非常不错,在训练速度。
㈦ [caffe]编译出问题/usr/bin/ld: cannot find -lcaffe
你caffe编译成功了嘛? 最后再加上 -lglog -lboost_system 试试
㈧ caffe编译过程中遇到这样的错误,怎么解决急求,希望各位大神能帮助解答,拜托拜托
可以看看这个呀,基本上原因在于protobuf的引用问题哈!
网页链接
㈨ caffe编译如何消除消除NVCC警告
改为
CUDA_ARCH := \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
㈩ 编译caffe出现问题
在程序开发的过程中,调试是一个不可缺少的重要环节。“三分编程七分调试”,说明程序调试的工作量要比编程大得多。C程序的错误可以分为两种:语法错误和逻辑错误
(1)语法错误,这是C语言初学者出现最多的错误,比如,分号“;”是每个C语句的结束的标志,在C语句后忘记写“;”就是语法错误,发生语法错误的程序,编译通不过,用户可以软件的提示信息来修改。
(2)逻辑错误 就是用户编写的程序已经没有语法错误,可以运行,但得不到所期望的结果(或正确的结果),也就是说由于程序设计者原因程序并没有按照程序设计者的思路来运行。比如一个最简单例子是:我的目的是求两个数的和的,应该写成 z=x+y; 由于某种原因却写成了 z=x-y; 这就是逻辑错误。
发生逻辑错误的程序编译软件是发现不了,要用户跟踪程序的运行过程才能发现程序中逻辑错误,这是最不容易修改的。比如软件的BUG就是逻辑错误,发行补丁程序就是修改逻辑错误(用户最常见就是Windows操作系统经常发布补丁程序)