![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习(Machine Learning)
lc_lc2000
这个作者很懒,什么都没留下…
展开
-
欢迎使用CSDN-markdown编辑器
caffe源码阅读(一) Blob概述 Blob是caffe中的数据存储模块,其主要包含三类数据: data:前向传播所用到的数据(到底是前向传播的权重,还是原始数据呢?) diff:反向传播时的梯度,注意这个梯度还要和clip_gradient这个参数联系起来,不过这是后话了 shape:其实是为了把data和diff解释为n*c*h*w这样的形式,其实这两个数据本身是以一维数组的形式存原创 2016-10-23 02:37:09 · 257 阅读 · 0 评论 -
caffe源码阅读(二) common
主要参考http://blog.csdn.net/xizero00/article/details/50889126主要作用 common的主要作用其实就对caffe的一些部件做初始化,包括实例化caffe,初始化随机数(通过提供随机数生成器)、gflasgs和glog的初始化。这其中,最重要的是随机数生成器的内容 (1)Generator类 两个构造函数: Generator();用系原创 2016-10-23 20:24:16 · 480 阅读 · 0 评论 -
caffe源码:SyncedMemory
主要目的 syncedMemory主要是在CPU或GPU上分配内存、以及保持数据的同步 主要用于Blob类// blob中的reshape 的具体实现 template <typename Dtype> void Blob<Dtype>::Reshape(const vector<int>& shape) { CHECK_LE(shape.size(), kMaxBlobAxe原创 2016-10-23 23:40:29 · 376 阅读 · 0 评论 -
caffe中的数据流通过程
感觉在看源码时,首先应该对caffe中的数据流有一个比较清晰的认识,所以我在这里把其中每一个blob的内存地址都记录下来,并做成了一张数据流向图,以加强后续的理解。1.下面看网络在test阶段的数据流向图1.1 从对应的内存地址可以看出,每一层的top blob,就是下一层的bottom blob;1.2 relu激活直接在conv层的输出上进行操作;1.3 fc8层和labe原创 2016-12-12 19:37:37 · 454 阅读 · 0 评论 -
No module named google.protobuf.internal错误
引言法国恢复规划返回原创 2016-12-24 15:38:05 · 543 阅读 · 0 评论 -
solver_factory.hpp的理解
blob中每一个元素是按照float类型来存储的,占4个byte 这里面定义了几个类,先看template <typename Dtype> //模板类class SolverRegistry { public://定义了两个成员变量 //名为Creator的函数指针,参数为SolverParameter&类型的引用,返回值为一个Solver类型的指针 typedef Solver<Dt原创 2016-12-25 15:28:00 · 825 阅读 · 0 评论 -
我对BPNN的一些浅见
我们知道,在任何机器学习模型中,都会有一个代价函数的概念。当训练样本一定时,这个代价函数实际上是一个自变量为模型参数,因变量为代价大小的函数。那么我们训练一个机器学习模型的目的就是,通过改变模型参数,来最小化模型的代价。那么问题来了,以什么样的方式来改变模型参数?一个很直观的方法是令模型的参数在其梯度方向上改变(关于梯度与函数大小的关系大家可以参考高等数学相应章节)。所以切入点是要求每个参数的偏导原创 2017-01-12 16:57:29 · 1864 阅读 · 0 评论