caffe源码学习(一):目录和依赖库

本文介绍了Caffe框架的源码目录结构及其核心组件Blob、Layer、Net和Solver的作用。此外还详细解释了各部分的主要功能及依赖库的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

caffe源码目录
+caffe-master/
|…data:训练数据
|…docs:帮助文档
|…examples:代码样例
|…matlab:Matlab接口
|…models:配置好的模型参数
|…scripts: 一些文档和数据会用到的脚本
|…tools:计算图像均值,调优网络,可视化
|…include:实现代码的头文件
++|…src :核心代码
|…gtest:google test一个用于测试的库
+++|…caffe:
|…test:gtest测试caffe的代码
|…util: 数据转换
|…proto:数据存储格式,全程“Protobuf”,帮助caffe提速
|…layers:深度神经网络中结构互不相同的的网络,每个Layer的输入和输出Feature map表示为Input Blob和Output Blob
|…solvers:深度网络的训练,每个Solver中包含一个训练网络对象和一个测试网络对象

Blob,Layer,NetSolvers是最基本的结构,这四个大类分别负责数据传输、网络层次、网络骨架与参数求解策略。
1.Blob是Caffe基础存储结构,是数据传输的媒介,神经网络涉及到的输入输出数据,网络权重参数等等,其实都是转化为Blob数据结构来存储的;
2.Layer是神经网络的基础单元,层与层间的数据节点、前后传递都在该数据结构中被实现,因神经网络网络中设计到多种层,这里layers下实现了卷积层、激励层,池化层,全连接层等等“积木元件”,丰富度很高;
3.Net是网络的整体搭建骨架,整合Layer中的层级机构组成网络;
4.Solver:是网络的求解优化策略,让你用各种“积木”搭建的网络能最适应当前的场景下的样本,如果做深度学习优化研究的话,可能会修改这个模块

caffe安装依赖的用途:
protobuf:google的一种数据交换的格式,性能好,效率高
数据库:Leveldb是一个google实现的非常高效的kv数据库;lmdb同样是谷歌的非关系型数据库,效率较前者更高,因此成为Caffe的默认数据格式
glog:google的C++开源日志库
gflags:oogle的一个开源的处理命令行参数的库
OpenCV:对原始图片进行裁剪等操作
Snappy:用来压缩和解压缩的C++开发包
hdf5:可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库
Boost库:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值