- 博客(16)
- 收藏
- 关注
原创 我对BPNN的一些浅见
我们知道,在任何机器学习模型中,都会有一个代价函数的概念。当训练样本一定时,这个代价函数实际上是一个自变量为模型参数,因变量为代价大小的函数。那么我们训练一个机器学习模型的目的就是,通过改变模型参数,来最小化模型的代价。那么问题来了,以什么样的方式来改变模型参数?一个很直观的方法是令模型的参数在其梯度方向上改变(关于梯度与函数大小的关系大家可以参考高等数学相应章节)。所以切入点是要求每个参数的偏导
2017-01-12 16:57:29
1913
原创 python中array和list的区别
只有array有资格使用布尔条件判断来进行索引x = [2, 10, 2, 1, 5, 11, 9, 1, 1, 9, 1, 3, 1, 2]x = np.array(x)x = np.hstack([x[x==i] for i in range(10)])print x输出 [1 1 1 1 1 2 2 2 3 5 9 9]
2016-12-25 16:18:10
1298
原创 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
866
原创 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
492
转载 Caffe+Ubuntu 14.04 LTS + CUDA 7.5 + CUDNN 5.1.3 + Intel MKL + OpenCV 3.1 RC安装教程
每个版本的cuda安装有些不同,大家尽量灵活安装1. Ubuntu 14.04 LTS 这部分请自行在网上搜索教程,比较简单2. CUDA 7.5安装下载好CUDA 7.5 toolkit(我的是cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb)后,安装sudo dpkg -i cuda-repo-ubuntu1404-7-5-loc
2016-11-21 16:55:15
432
转载 C++中的容器类详解
C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等;后者包括set,map,multiset,multimap等。若需要存储的元素数在编译器间就可以确定,可以使用数组来存储,否则,就需要用到容器类了。vector 连续存储结构,每个元素在内存上是连续的; 支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除操作效率低下;deque
2016-11-21 11:26:31
414
转载 Caffe+Ubuntu 14.04 LTS + CUDA 7.5 + CUDNN 5.1.3 + Intel MKL + OpenCV 3.1 RC安装教程
在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息:复制代码代码如下:/usr/bin/ld: cannot find -lxxx这些讯息会随着编译不同类型的source code 而有不同的结果出来如:复制代码代码如下:/usr/bin/ld: cannot find -lc/us
2016-11-20 13:39:17
744
原创 Python中列表和数组的赋值,浅拷贝和深拷贝
Python中列表和数组的赋值,浅拷贝和深拷贝列表赋值:>>> a = [1, 2, 3]>>> b = a>>> print b[1, 2, 3]>>> a[0] = 0>>> print b[0, 2, 3]解释:[1, 2, 3]被视作一个对象,a,b均为这个对象的引用,因此,改变a[0],b也随之改变如果希望b不改变,可以用到切片>>> b =
2016-11-12 00:06:42
40897
原创 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
455
原创 caffe源码阅读(二) common
主要参考http://blog.youkuaiyun.com/xizero00/article/details/50889126主要作用 common的主要作用其实就对caffe的一些部件做初始化,包括实例化caffe,初始化随机数(通过提供随机数生成器)、gflasgs和glog的初始化。这其中,最重要的是随机数生成器的内容 (1)Generator类 两个构造函数: Generator();用系
2016-10-23 20:24:16
555
原创 Linux中的线程局部存储
如果需要在一个线程内部的各个函数调用都能访问、但其它线程不能访问的变量,这就需要新的机制来实现,我们称之为Static memory local to a thread (线程局部静态变量),同时也可称之为线程特有数据(TSD: Thread-Specific Data)或者线程局部存储(TLS: Thread-Local Storage)。这一类型的数据,在程序中每个线程都会分别维护一份变量的副本
2016-10-23 19:36:30
370
原创 欢迎使用优快云-markdown编辑器
caffe源码阅读(一) Blob概述 Blob是caffe中的数据存储模块,其主要包含三类数据: data:前向传播所用到的数据(到底是前向传播的权重,还是原始数据呢?) diff:反向传播时的梯度,注意这个梯度还要和clip_gradient这个参数联系起来,不过这是后话了 shape:其实是为了把data和diff解释为n*c*h*w这样的形式,其实这两个数据本身是以一维数组的形式存
2016-10-23 02:37:09
280
转载 Ubuntu 14.04硬盘开机自动挂载
http://www.cnblogs.com/hnrainll/archive/2012/02/27/2369331.html注意:找到UUID的命令blkid最后修改/etc/fstab时,要把0 3, 换作0 2
2016-04-02 22:29:40
296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人