随笔分类 -  caffe学习

摘要:1.在使用draw_net.py的时候,提示如下错误: AttributeError: 'google.protobuf.pyext._message.RepeatedScalarConta' object has no attribute '_values': 后来知道原因:(http://www.infocool.net/kb/WWW/201702/293190.html) 这是由于你的pro... 阅读全文
posted @ 2017-08-07 21:49 殷大侠 阅读(1691) 评论(0) 推荐(0) 编辑
摘要:根据 caffe/src/caffe/proto/caffe.proto 里面的文件,可以看到它有以下几种学习率的衰减速机制: 1. fixed: 在训练过程中,学习率不变; 2. step: 它的公式可以表示:, 所以呢,它的学习率的变化就像台价一样;step by step 的; 其中的 gamma 与 stepsize需要设置的; 3.exp : 表示指数型的;公式为:;其中... 阅读全文
posted @ 2017-08-07 09:41 殷大侠 阅读(5728) 评论(0) 推荐(0) 编辑
摘要:首先说明:在caffe/include/caffe中的 filer.hpp文件中有它的源文件,如果想看,可以看看哦,反正我是不想看,代码细节吧,现在不想知道太多,有个宏观的idea就可以啦,如果想看代码的具体的话,可以看:http://blog.csdn.net/xizero00/article/details/50921692,写的还是很不错的(不过有的地方的备注不对,不知道改过来了没)。 文件... 阅读全文
posted @ 2016-12-12 19:39 殷大侠 阅读(8450) 评论(0) 推荐(1) 编辑
摘要:caffe默认使用的数据格式为lmdb文件格式,它提供了把图片转为lmdb文件格式的小程序,但是呢,我的数据为一维的数据,我也要分类啊,那我怎么办?肯定有办法可以转为lmdb文件格式的,我也看了一些源代码,好像是把我们的数据变为Datum的格式(这是一个用google protocol buffer 阅读全文
posted @ 2016-11-20 22:38 殷大侠 阅读(13148) 评论(3) 推荐(0) 编辑
摘要:关于caffe中的solver: cafffe中的sover的方法都有: Stochastic Gradient Descent (type: "SGD"), AdaDelta (type: "AdaDelta"), Adaptive Gradient (type: "AdaGrad"), Adam 阅读全文
posted @ 2016-11-16 16:45 殷大侠 阅读(41669) 评论(1) 推荐(2) 编辑
摘要:下面是基于我自己的接口,我是用来分类一维数据的,可能不具通用性: (前提,你已经编译了caffe的python的接口) 添加 caffe塻块的搜索路径,当我们import caffe时,可以找到。 对于这一步,一般我们都会把 cafffe 模块的搜索路经永久地加到先加$PYTHONPATH中去,如可 阅读全文
posted @ 2016-11-14 17:00 殷大侠 阅读(26284) 评论(0) 推荐(2) 编辑
摘要:先总的说一下: 类:LMDBCursor: 它干了点什么?它需要传入参数为:mdb_txn(传入它是因为用完它,把它absort掉), mdb_cursor;它应该是用来读出数据的; 类:LMDBTransaction: 它主要是用来写入数据的吧,,用put()函数 ,与commit()函数; 最终还是靠类:LMDB应该算是一个对上面两个类的调用吧。它应该算是做了封装吧,,干脆直接上代码啦:... 阅读全文
posted @ 2016-10-22 19:01 殷大侠 阅读(3161) 评论(0) 推荐(0) 编辑
摘要:首先说明:下面的内容不一定对 类body: 变量:LayerParameter param_ :它里面放的是:body传进来的layerparameter的参数; BlockingQueue<shared_ptr<QueuePair> > new_queue_pairs_:这是一个队列,它里面放的是 阅读全文
posted @ 2016-10-21 20:26 殷大侠 阅读(1004) 评论(0) 推荐(0) 编辑
摘要:下面来自:http://m.blog.csdn.net/article/details?id=49786985 总结solver文件个参数的意义 iteration: 数据进行一次前向-后向的训练batchsize:每次迭代训练图片的数量epoch:1个epoch就是将所有的训练图像全部通过网络训练一次例如:假如有1280000张图片,batchsize=256,则1个epoch需要128000... 阅读全文
posted @ 2016-10-21 18:16 殷大侠 阅读(336) 评论(0) 推荐(0) 编辑
摘要:我看的一下午才明白的,因为吧,我之前都是不知道与boost::thread相关的任何知识,然后开始看各种资料啊。。。 妈的,我就是一个小白,没一点基础的。。 总的来说:blocking_queue实现一个阻塞队列,它利用了生成者与消费者的设计模式,怎么说呢?、 首先吧,你要有一个queue(队列,c++里的一种容器),对它的操作有push与pop。 push即向队列里压入数据,相当于一个生产者... 阅读全文
posted @ 2016-10-20 23:48 殷大侠 阅读(1600) 评论(0) 推荐(0) 编辑
摘要:filler.hpp文件:(它应该没有对应的.cpp文件,一切实现都是在头文件中定义的,可能是因为filler只分在网络初始化时用到那么一次吧) 1,首先定义了基类:Filler,它包括:一个纯虚函数:filler(用于在子类里根据不同的情况具体实现) 一个数据:filler_param_(类型为FillerParam... 阅读全文
posted @ 2016-10-20 12:03 殷大侠 阅读(799) 评论(0) 推荐(0) 编辑
摘要:对于数据在cpu与GPU之间同步的问题,caffe中用syncedMemory这个类来解 决;在GPU模式下,并且使用CUDA时,可以用CaffeMallocHost函数与CaffeFreeHost函数 来申请与释放内存; SyncedMemory的构造函数与析构函数不多说,可以看源码; 在该类中定义的变量有: void* cpu_ptr_; //数据在CPU上的指针; void* gpu... 阅读全文
posted @ 2016-10-09 20:03 殷大侠 阅读(454) 评论(0) 推荐(0) 编辑
摘要:首先说明:Blob定义了一个类模板。 让我们看一下Blob的头文件里有什么哈: 定义了一个全局变量: const int kMaxBlobAxes = 32; 看看它的构造函数: Blob() : data_(), diff_(), count_(0), capacity_(0) {};explicit Blob(const int num, const int channels, const... 阅读全文
posted @ 2016-10-09 19:08 殷大侠 阅读(3685) 评论(0) 推荐(0) 编辑
摘要:首先,官方的参考文献为:http://caffe.berkeleyvision.org/installation.html。 现在开始: 安装一些依赖包(对于gcc与g++编译器,就不多说了,可以apt-get install build-essentital),命令如下: 现在安装cuda,官方网 阅读全文
posted @ 2016-09-26 16:05 殷大侠 阅读(2935) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示