文章分类 -  caffe源码解析(转载)

摘要:(Caffe)编程小技巧 版权声明:未经允许请勿用于商业用途,转载请注明出处:http://blog.csdn.net/mounty_fsc/ 版权声明:未经允许请勿用于商业用途,转载请注明出处:http://blog.csdn.net/mounty_fsc/ 1. Cuda中要处理单位数据N大于可 阅读全文
posted @ 2017-06-13 11:00 菜鸡一枚 阅读(232) 评论(0) 推荐(0)
摘要:【caffe源码研究】第四章:完整案例源码篇(5) :LeNet反向过程 本部分剖析Caffe中Net::Backward()函数,即反向传播计算过程。从LeNet网络角度出发,且调试网络为训练网络,共9层网络。 入口信息 Net::Backward()函数中调用BackwardFromTo函数,从 阅读全文
posted @ 2017-06-05 15:39 菜鸡一枚 阅读(667) 评论(0) 推荐(0)
摘要:【caffe源码研究】第四章:完整案例源码篇(4) :LeNet前向过程 入口信息 通过如下的调用堆栈信息可以定位到函数ForwardFromTo(其他函数中无重要信息) caffe::Net<float>::ForwardFromTo() at net.cpp:574 caffe::Net<flo 阅读全文
posted @ 2017-06-05 15:34 菜鸡一枚 阅读(278) 评论(0) 推荐(0)
摘要:【caffe源码研究】第四章:完整案例源码篇(3) :LeNet初始化测试网络 一、 测试网络结构 注:Top Blob Shape格式为:BatchSize,ChannelSize,Height,Width(Total Count) 二、 与训练网络对比 训练网络9层,测试网络12层 训练网络没有 阅读全文
posted @ 2017-06-05 15:12 菜鸡一枚 阅读(224) 评论(0) 推荐(0)
摘要:【caffe源码研究】第四章:完整案例源码篇(2) :LeNet初始化训练网络 一、Solver到Net SGDSolver的构造函数中主要执行了其父类Solver的构造函数,接着执行Solver::Init()函数,在Init()中,有两个函数值得注意:InitTrainNet()和InitTes 阅读全文
posted @ 2017-06-05 15:07 菜鸡一枚 阅读(344) 评论(0) 推荐(0)
摘要:【caffe源码研究】第四章:完整案例源码篇(1) :LeNetSolver初始化 在训练lenet的train_lenet.sh中内容为: 由此可知,训练网咯模型是由tools/caffe.cpp生成的工具caffe在模式train下完成的。 初始化过程总的来说,从main()、train()中创 阅读全文
posted @ 2017-06-05 09:38 菜鸡一枚 阅读(320) 评论(0) 推荐(0)
摘要:【caffe源码研究】第三章:源码篇(6) :caffe.proto caffe使用protobuf来定义网络结构、参数等。这里介绍一下caffe.proto里面核心的部分。 Blob 先看Blob相关的protobuf message BlobShape { //数据块形状定义为Num×Chann 阅读全文
posted @ 2017-06-01 22:30 菜鸡一枚 阅读(516) 评论(0) 推荐(0)
摘要:caffe源码解析-solver_factory 声明:内容整理自 Caffe代码解析(4) Caffe Source Code Analysis BUPTLdy/Caffe_Code_Analysis (带注释源码) 感谢Ldy和各位博主的无私分享。各位博主已经写的很好,个人做了一些梳理和补充,方 阅读全文
posted @ 2017-05-31 08:50 菜鸡一枚 阅读(500) 评论(0) 推荐(0)
摘要:caffe 学c++ 编程 技巧 1、 使用模板,泛型编程 [cpp] view plain copy template <typename Dtype> Net<Dtype>::Net(const NetParameter& param) { Init(param); } [cpp] view p 阅读全文
posted @ 2017-05-23 10:14 菜鸡一枚 阅读(568) 评论(0) 推荐(0)
摘要:Caffe代码解析(4) 在上文对Command Line Interfaces进行了简单的介绍之后,本文将对caffe的Solver相关的代码进行分析。 本文将主要分为四部分的内容: Solver的初始化(Register宏和构造函数) SIGINT和SIGHUP信号的处理 Solver::Sol 阅读全文
posted @ 2017-05-13 10:47 菜鸡一枚 阅读(279) 评论(0) 推荐(0)
摘要:Caffe代码解析(3) 在上文对Google Protocol Buffer进行了简单的介绍之后,本文将对caffe的Command Line Interfaces进行分析。 本文将从一个比较宏观的层面上去了解caffe怎么去完成一些初始化的工作和使用Solver的接口函数,本文将主要分为四部分的 阅读全文
posted @ 2017-05-11 22:19 菜鸡一枚 阅读(392) 评论(0) 推荐(0)
摘要:caffe caffe.cpp 程序入口分析 caffe.cpp 程序入口分析, (1)main()函数中,输入的train,test,device_query,time。 通过下面两行进入程序。 if (argc == 2) { return GetBrewFunction(caffe::stri 阅读全文
posted @ 2017-05-11 22:13 菜鸡一枚 阅读(438) 评论(0) 推荐(0)
摘要:一种根据输入动态执行函数 匿名命名空间,使得文件外无法访问这些变量,定义一个类,以数组方式往map中添加一个函数指针。‘#’表示将一个变量变成字符串。‘##’表示拼接一个字符串和一个变量。 使用的方法: 示例: ./main name1 ./main name2 程序的整个思路是: 开始程序,执行宏 阅读全文
posted @ 2017-05-11 21:22 菜鸡一枚 阅读(340) 评论(0) 推荐(0)
摘要:Caffe代码解析(2) 在Caffe中定义一个网络是通过编辑一个prototxt文件来完成的,一个简单的网络定义文件如下: 1 name: "ExampleNet" 2 layer { 3 name: "data" 4 type: "Data" 5 top: "data" 6 top: "labe 阅读全文
posted @ 2017-05-11 10:25 菜鸡一枚 阅读(226) 评论(0) 推荐(0)
摘要:Caffe代码解析(1) Caffe是一个基于C++和cuda开发的深度学习框架。其使用和开发的便捷特性使其成为近年来机器学习和计算机视觉领域最广为使用的框架。 笔者使用Caffe做各种实验也有一段时间了,除了Caffe支持的各种计算方式(卷积/pooling/全连接等)之外,在自己的使用中开始遇到 阅读全文
posted @ 2017-05-10 20:59 菜鸡一枚 阅读(460) 评论(0) 推荐(0)
摘要:Caffe Source Code Analysis Caffe简介 Caffe作为一个优秀的深度学习框架网上已经有很多内容介绍了,这里就不在多说。作为一个C++新手,断断续续看Caffe源码一个月以来发现越看不懂的东西越多,因此在博客里记录和分享一下学习的过程。其中我把自己看源码的一些注释结合了网 阅读全文
posted @ 2017-05-10 10:38 菜鸡一枚 阅读(712) 评论(0) 推荐(0)
摘要:Caffe源码学习笔记2:include/caffe/solver_factory.hpp 简要说明:slover是什么?solver是caffe中实现训练模型参数更新的优化算法,solver类派生出的类可以对整个网络进行训练。在caffe中有很多solver子类,即不同的优化算法,如随机梯度下降( 阅读全文
posted @ 2017-05-06 11:08 菜鸡一枚 阅读(281) 评论(0) 推荐(0)
摘要:Caffe源码学习笔记1:tools/caffe.cpp caffe-master/Tools文件夹下提供了caffe框架的主要工具(经编译后为可执行文件,在build/tools/下)。tools/caffe.cpp是caffe程序的入口(即main函数),一条标准的训练指令为: ./build/ 阅读全文
posted @ 2017-05-05 19:48 菜鸡一枚 阅读(587) 评论(0) 推荐(0)
摘要:梳理caffe代码net(四) net定义网络, 整个网络中含有很多layers, net.cpp负责计算整个网络在训练中的forward, backward过程, 即计算forward/backward 时各layer的gradient。 看一下官网的英文描述: The forward and b 阅读全文
posted @ 2017-05-02 10:03 菜鸡一枚 阅读(661) 评论(0) 推荐(0)
摘要:梳理caffe代码io(十三) io包含了创建临时文件临时目录操作,以及从txt文件以及bin文件读取proto数据或者写入proto的数据到txt或者bin文件。io其实就是提供如何读取如何写入的一些读取图像或者文件,以及它们之间的一些转化的函数。 hpp文件: [cpp] view plain  阅读全文
posted @ 2016-04-12 10:31 菜鸡一枚 阅读(864) 评论(0) 推荐(0)