caffe源代码写代码都需要写哪些文件

caffe(3)
深度学习(14)
按照安装,我在 OS X 10.9 和 Ubuntu 14.04 上面都安装成功了。主要麻烦在于 glog gflags gtest 这几个依赖项是google上面的需要翻墙。由于我用Mac没有CUDA,所以安装时需要设置 CPU_ONLY := 1。
如果不是干净的系统,安装还是有点麻烦的比如我在OS X 10.9上面,简直不是一般的麻烦,OS X 10.9 默认的编译器是clang,所以还要修改编译器和重行编译一大堆依赖库。这方面其实网上教程很多,涵盖了各种你可能遇到的问题,多Google下问题还是可以解决的。
caffe文件夹下主要文件: 这表示文件夹
data 用于存放下载的训练数据docs 帮助文档example 一些代码样例matlab MATLAB接口文件python Python接口文件model 一些配置好的模型参数scripts 一些文档和数据用到的脚本
下面是核心代码文件夹:
tools 保存的源码是用于生成二进制处理程序的,caffe在训练时实际是直接调用这些二进制文件。include Caffe的实现代码的头文件src 实现Caffe的源文件
后面的学习主要围绕后面两个文件目录(include和src)下的代码展开
由于include和src两个目录在层次上基本一一对应因此主要分析src即可了解文件结构。
这里顺便提到一个有意思的东西,我是在Sublime上面利用SublimeClang插件分析代码的(顺便推荐下这插件,值得花点时间装)。在配置的时候发现会有错误提示找不到”caffe/proto/caffe.pb.h”,去看了下果然没有,但编译的时候没有报错,说明是生成过后又删除了,查看Makefile文件后发现这里用了proto编译的,所以在”src/caffe/proto”下面用CMakeLists文件就可以编译出来了。
gtest google test一个用于测试的库你make runtest时看见的很多绿色RUN OK就是它,这个与caffe的学习无关,不过是个有用的库caffe 关键的代码都在这里了
test 用gtest测试caffe的代码util 数据转换时用的一些代码。caffe速度快,很大程度得益于内存设计上的优化(blob数据结构采用proto)和对卷积的优化(部分与im2col相关)[1]。proto 即所谓的“Protobuf”[2],全称“Google Protocol Buffer”,是一种数据存储格式,帮助caffe提速。layers 深度神经网络中的基本结构就是一层层互不相同的网络了,这个文件夹下的源文件以及目前位置“src/caffe”中包含的我还没有提到的所有.cpp文件就是caffe的核心目录下的核心代码了。
源码主要关系
如上所言我们现在可以知道,caffe核心中的核心是下面的文档和文件:(这部分目前不清楚的地方先参照别人的观点)
blob[.cpp .h] 基本的数据结构Blob类[3]。common[.cpp .h] 定义Caffe类internal_thread[.cpp .h] 使用boost::thread线程库net[.cpp .h] 网络结构类Netsolver[.cpp .h] 优化方法类Solverdata_transformer[.cpp .h] 输入数据的基本操作类DataTransformersyncedmem[.cpp .h] 分配内存和释放内存类CaffeMallocHost,用于同步GPU,CPU数据layer_factory.cpp layer.h 层类Layerlayers 此文件夹下面的代码全部至少继承了类Layer
Caffe的官方说明
根据Caffe介绍,caffe大致可以分为三层结构blob,layer,net。数据的保存,交换以及操作都是以blob的形式进行的,layer是模型和计算的基础,net整和并连接layer。solver则是模型的优化求解。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10899次
排名:千里之外
转载:35篇
(3)(1)(1)(1)(2)(3)(1)(2)(3)(1)(1)(3)(13)(2)caffe配置的要求和配置的过程_其它编程-织梦者
当前位置:&>&&>& > caffe配置的要求和配置的过程
caffe配置的要求和配置的过程
最近准备用caffe做图片的分类,可配置caffe就让我折腾了大半个月,一直配置不成功,最后还是参考官网的tutorial才配置成功,于是决定把配置的过程写下来,如果后面有朋友配置caffe遇到什么问题,还可以参考参考。
首先贴出官方的配置caffe的工程:/BVLC/caffe/tree/,注意,这可是基于Windows系统的,因为我的电脑是win7的,打开这个网页下面有个readme文件,下面写的就是配置的要求和配置的过程,是全英文的,对于编程人员来说,看点英文是必须的,所以,我就硬着头皮一步一步配置了,黄天不负有心人,终于配置成功。下面,我准备讲一讲我的具体配置步骤。(ps:之前我是一直按照happynear的版本配置的:http://blog.csdn.net/happynear/article/details/,但是一直配置不成功,编译生成的caffe.exe一打开就报错,也不知道是什么原因,不过happynear的版本也讲的很详细,大赞,关键是中文啊,还是有很多人配置成功了的。)
具体配置过程:
1、打开官方链接,下载Windows-master并解压保存在你的电脑中,如:E:\windows_caffe
2、按照官方的要求,必须要装Visual Studio 2013,
进入你刚才保存windows_caffe的文件夹下,复制.\windows\CommonSettings.props.example,在原地黏贴,并重命名CommonSettings.props,说白了,这一步骤就是修改工程的属性文件,里面CUDA和cuDNN库是默认被要求用到的,cuDNN和CPU_ONLY两个只能二选一,Python和matlab是被默认false的,也就是不用,你可以通过修改这个属性文件来个性化设置。
3、安装CUDA7.5:/cuda-toolkit,如果不想安装,或者不能安装(没有显卡,或是显卡太旧),也可以用CUP_ONLY,只需在工程的属性文件里面修改一下即可,设置CpuOnlyBuild为true并设置UseCuDNN为false.
4、安装cuDNN,/cudnn,这个网站需要注册才能下载,我安装的是cuDNN
v4,之前我在配置的时候安装是cuDNN v5,因为看到cuDNN的官网说v5和CUDA7.5对应,我想,这是不是更好呢,结果在编译caffe的时候出错了,说cudnn.h少了参数,没办法,还是选择了v4,其实caffe官网也说了,用v3或v4。
5、安装Python,(不想用Python可以不用安装)官网也给出了链接,直接下载:http://conda.pydata.org/miniconda.html,按照官网要求,我下载的是Miniconda
2.7 64-bit Windows,通过安装Python就可以把Python的库路径加入到系统环境变量中去,在命令提示符窗口运行以下命令:
conda install --yes numpy scipy matplotlib scikit-image pip pip install protobuf
这条命令应该是对Python提高一些性能的,安装了很多东西,时间有点久,耐心等待。。。。
6、安装matlab,(不想用matlab可以不用安装)因为这个我原本电脑就有安装,就不讲了。
7、把这些都安装好了,就可以修改工程的属性文件了。下面是我修改的属性文件,给出来做参考。
&?xml version=&1.0& encoding=&utf-8&?&
&Project ToolsVersion=&4.0& xmlns=&/developer/msbuild/2003&&
&ImportGroup Label=&PropertySheets& /&
&PropertyGroup Label=&UserMacros&&
&BuildDir&$(SolutionDir)..\Build&/BuildDir&
&!--NOTE: CpuOnlyBuild and UseCuDNN flags can't be set at the same time.--&
&CpuOnlyBuild&false&/CpuOnlyBuild&
&UseCuDNN&true&/UseCuDNN&
&CudaVersion&7.5&/CudaVersion&
&!-- NOTE: If Python support is enabled, PythonDir (below) needs to be
set to the root of your Python installation. If your Python installation
does not contain debug libraries, debug build will not work. --&
&PythonSupport&true&/PythonSupport&
&!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to be
set to the root of your Matlab installation. --&
&MatlabSupport&true&/MatlabSupport&
&CudaDependencies&&/CudaDependencies&
&!-- Set CUDA architecture suitable for your GPU.
Setting proper architecture is important to mimize your run and compile time. --&
&CudaArchitecture&compute_35,sm_35;compute_52,sm_52&/CudaArchitecture&
&!-- CuDNN 3 and 4 are supported --&
&CuDnnPath&E:\cudnnlib\&/CuDnnPath&
&ScriptsDir&$(SolutionDir)\scripts&/ScriptsDir&
&/PropertyGroup&
&PropertyGroup Condition=&'$(CpuOnlyBuild)'=='false'&&
&CudaDependencies&cublas.cuda.curand.cudart.lib&/CudaDependencies&
&/PropertyGroup&
&PropertyGroup Condition=&'$(UseCuDNN)'=='true'&&
&CudaDependencies&cudnn.$(CudaDependencies)&/CudaDependencies&
&/PropertyGroup&
&PropertyGroup Condition=&'$(UseCuDNN)'=='true' And $(CuDnnPath)!=''&&
&LibraryPath&$(CuDnnPath)\cuda\lib\x64;$(LibraryPath)&/LibraryPath&
&IncludePath&$(CuDnnPath)\cuda\$(IncludePath)&/IncludePath&
&/PropertyGroup&
&PropertyGroup&
&OutDir&$(BuildDir)\$(Platform)\$(Configuration)\&/OutDir&
&IntDir&$(BuildDir)\Int\$(ProjectName)\$(Platform)\$(Configuration)\&/IntDir&
&/PropertyGroup&
&PropertyGroup&
&LibraryPath&$(OutDir);$(CUDA_PATH)\lib\$(Platform);$(LibraryPath)&/LibraryPath&
&IncludePath&$(SolutionDir)..\$(SolutionDir)..\include\caffe\$(CUDA_PATH)\$(IncludePath)&/IncludePath&
&/PropertyGroup&
&PropertyGroup Condition=&'$(PythonSupport)'=='true'&&
&PythonDir&E:\Miniconda2\&/PythonDir&
&LibraryPath&$(PythonDir)\$(LibraryPath)&/LibraryPath&
&IncludePath&$(PythonDir)\$(IncludePath)&/IncludePath&
&/PropertyGroup&
&PropertyGroup Condition=&'$(MatlabSupport)'=='true'&&
&MatlabDir&E:\Program Files\MATLAB\R2014a&/MatlabDir&
&LibraryPath&$(MatlabDir)\extern\lib\win64\$(LibraryPath)&/LibraryPath&
&IncludePath&$(MatlabDir)\extern\$(IncludePath)&/IncludePath&
&/PropertyGroup&
&ItemDefinitionGroup Condition=&'$(CpuOnlyBuild)'=='true'&&
&ClCompile&
&PreprocessorDefinitions&CPU_ONLY;%(PreprocessorDefinitions)&/PreprocessorDefinitions&
&/ClCompile&
&/ItemDefinitionGroup&
&ItemDefinitionGroup Condition=&'$(UseCuDNN)'=='true'&&
&ClCompile&
&PreprocessorDefinitions&USE_CUDNN;%(PreprocessorDefinitions)&/PreprocessorDefinitions&
&/ClCompile&
&CudaCompile&
&Defines&USE_CUDNN&/Defines&
&/CudaCompile&
&/ItemDefinitionGroup&
&ItemDefinitionGroup Condition=&'$(PythonSupport)'=='true'&&
&ClCompile&
&PreprocessorDefinitions&WITH_PYTHON_LAYER;BOOST_PYTHON_STATIC_LIB;%(PreprocessorDefinitions)&/PreprocessorDefinitions&
&/ClCompile&
&/ItemDefinitionGroup&
&ItemDefinitionGroup Condition=&'$(MatlabSupport)'=='true'&&
&ClCompile&
&PreprocessorDefinitions&MATLAB_MEX_FILE;%(PreprocessorDefinitions)&/PreprocessorDefinitions&
&/ClCompile&
&/ItemDefinitionGroup&
&ItemDefinitionGroup&
&ClCompile&
&MinimalRebuild&false&/MinimalRebuild&
&MultiProcessorCompilation&true&/MultiProcessorCompilation&
&PreprocessorDefinitions&_SCL_SECURE_NO_WARNINGS;USE_OPENCV;USE_LEVELDB;USE_LMDB;%(PreprocessorDefinitions)&/PreprocessorDefinitions&
&TreatWarningAsError&false&/TreatWarningAsError&
&/ClCompile&
&/ItemDefinitionGroup&
&ItemDefinitionGroup Condition=&'$(Configuration)|$(Platform)'=='Release|x64'&&
&ClCompile&
&Optimization&Full&/Optimization&
&PreprocessorDefinitions&NDEBUG;%(PreprocessorDefinitions)&/PreprocessorDefinitions&
&RuntimeLibrary&MultiThreadedDLL&/RuntimeLibrary&
&FunctionLevelLinking&true&/FunctionLevelLinking&
&/ClCompile&
&EnableCOMDATFolding&true&/EnableCOMDATFolding&
&GenerateDebugInformation&true&/GenerateDebugInformation&
&LinkTimeCodeGeneration&UseLinkTimeCodeGeneration&/LinkTimeCodeGeneration&
&OptimizeReferences&true&/OptimizeReferences&
&/ItemDefinitionGroup&
&ItemDefinitionGroup Condition=&'$(Configuration)|$(Platform)'=='Debug|x64'&&
&ClCompile&
&Optimization&Disabled&/Optimization&
&PreprocessorDefinitions&_DEBUG;%(PreprocessorDefinitions)&/PreprocessorDefinitions&
&RuntimeLibrary&MultiThreadedDebugDLL&/RuntimeLibrary&
&/ClCompile&
&GenerateDebugInformation&true&/GenerateDebugInformation&
&/ItemDefinitionGroup&
&/Project&
另外特别注意:
(1)&CudaArchitecture&compute_35,sm_35;compute_52,sm_52&/CudaArchitecture&
这一行,是CUDA的计算能力,必须和你的电脑显卡想匹配,不然会报错。查看显卡GPU CUDA Capability的版本,方法:
step1: 右键&计算机&&&&属性&&&&设备管理器&&&&显示适配器&
step2: 根据显卡型号,在/cuda-gpus查看CUDA Capability的版本。要查看显卡CUDA Capability版本的原因是因为:buildVS2013项目默认是开启cudnn的,而CUDNN要求GPU CUDA Capability 不低于3.0,如果CUDA Capability 版本低于3.0,在编译过程中,不关闭cudnn,则会出现类似问题:
caffe make runtest error(core dumped)Check failed: status == CUDNN_STATUS_SUCCESS (6 vs. 0)
(2)&TreatWarningAsError&false&/TreatWarningAsError&
这一行,如果不改,就会在编译的时候报错,error C2220: 警告被视为错误 - 没有生成&object&文件 (..\..\src\caffe\util\math_functions.cpp)
8、改完工程属性配置文件之后,就可以编译caffe了,就在这个属性配置文件同级目录下有个Caffe.sln,用Visual Studio 2013打开即可,它是默认只对libcaffe进行编译的,你想全部编译需要在调试--&设置启动项目--&通用属性--&启动项目,把单启动项目改为多启动项目,然后再勾选需要启动的项目。改解决方案配置为Release,平台为x64,在点击编译之后,程序会通过NuGet自动加载第三方库(3rdparty),时间会很长,然后就是大约半个小时的编译,最后会在E:\caffe_windows\Build\x64\Release\目录下生成caffe.exe和其他工程的.exe文件。
9、在生成各种.exe文件之后,需要使用Python和matlab的,别忘了把&caffe_root&\Build\x64\Release\pycaffe\caffe文件夹拷贝到&python_root&\lib\site-packages文件夹下。对于matlab,就把生成的matcaffe文件夹添加到matlab的搜索路径里,并把&caffe_root&\Build\x64\Release文件夹添加到你的系统环境路径。
好了,到这里就把caffe配置完成了,之后需了解caffe的框架等等,官网有很多教程,可以多看看。
参考文献:/BVLC/caffe/tree/windows
以上就是caffe学习(1)的全文介绍,希望对您学习和使用程序编程有所帮助.
这些内容可能对你也有帮助
更多可查看其它编程列表页。
猜您也会喜欢这些文章深度学习caffe的代码怎么读_百度知道-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
Caffe代码导读.docx
Caffe代码导读ġ:路线图【Caffe是什么?】Caffe是一个深度学习框架,以代码整洁、可读性强、运行速度快著称。代码地址为:/BVLC/caffe【博客目的】从接触Caffe、编译运行、阅读代码、修改代码一路走来,学习到不少内容,包括深度学习理论,卷积神经网络算法实现,数学库MKL,计算机视觉库OpenCV,C++模板类使用,CUDA程序编写&&本博客
Caffe代码导读(0):路线图【Caffe是什么?】Caffe是一个深度学习框架,以代码整洁、可读性强、运行速度快著称。代码地址为:/BVLC/caffe【博客目的】从接触Caffe、编译运行、阅读代码、修改代码一路走来,学习到不少内容,包括深度学习理论,卷积神经网络算法实现,数学库MKL,计算机视觉库OpenCV,C++模板类使用,CUDA程序编写……本博客目的是为初学者清除代码阅读中的障碍,结合官网文档、融入个人理解、注重动手实践 &&
加载中...!如果长时间没有加载,请刷新页面
下载本文档需要登录,并付出相应积分()。
文件大小:1.03 MB
所需积分:& 8
相关资讯  — 
相关讨论话题  — 
浏览:0次&& 下载:10次
格式:docx
收藏:26人
上传时间: 09:39:08
同类热门文档
23194次浏览 &16次下载
0次浏览 &4次下载
6180次浏览 &3次下载
2745次浏览 &3次下载
6478次浏览 &6次下载
1451次浏览 &3次下载
相关经验 -
& 0人评&89页
& 0人评&73页
& 0人评&24页
& 0人评&21页
& 0人评&87页
OPEN-OPEN, all rights reserved.&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 caffe代码 的文章

 

随机推荐