首先说明:下面的内容不一定对 类body: 变量:LayerParameter param_ :它里面放的是:body传进来的layerparameter的参数: BlockingQueue<shared_ptr<QueuePair> > new_queue_pairs_:这是一个队列,它里面放的是一个队列对指针, 它的初始化:由传入的layerparameter参数赋值param_变量,并开启一个相应的进程: 它的析构函数:让进程停下来: 开启的这个进程它会干什么呢??用来读数据…
转载请注明来源:cuixiaolei的技术博客 这篇文章主要通过分析高通recovery目录下的recovery.cpp源码,对recovery启动流程有一个宏观的了解.MTK和高通的recovery几乎一样,只是使用自己家的mt_xxx文件. 为什么要分析recovery.cpp这个文件? 我们知道,当我们通过按键或者应用进入recovery模式,实质是kernel后加载recovery.img,kernel起来后执行的第一个进程就 是init,此进程会读入init.rc启动相应的服务.在re…
这篇文章主要通过分析高通recovery目录下的recovery.cpp源码,对recovery启动流程有一个宏观的了解. 当开机以后,在lk阶段,如果是recovery,会设置boot_into_recovery=1,然后读取recovery.img镜像,把recovery.img的地址和ramdisk等信息作为参数启动kernel,从而进入recovery模式,下面进行简单的分析. 为什么要分析recovery.cpp这个文件? 下面的代码位于bootable/recovery/etc/in…
对于layer层的cpp文件,你可以用LOG和printf.cout进行调试,cu文件不能使用LOG,可以使用cout,printf. 对于softmaxloss的layer层,既有cpp文件又有cu文件,其中cu文件只实现了前向和反向传播,cpp文件既实现了前向.反向,也实现了layer setup,layer reshape,还有一些定义的函数.我用上述方法进行调试发现,在gpu条件下,cpp的前向和反向不使用,但其他函数依然使用,gpu下的前向反向是使用cu中的代码.…
Caffe_Activation 一般来说,激励层的输入输出尺寸一致,为非线性函数,完成非线性映射,从而能够拟合更为复杂的函数表达式激励层都派生于NeuronLayer: class XXXlayer : public NeuronLayer 1.基本函数 激励层的基本函数较为简单,主要包含构造函数和前向.后向函数 explicit XXXLayer(const LayerParameter& param) :NeuronLayer<Dtype>(param){} virtual in…
补:主要函数运行顺序: main>>GetBrewFunction>>train>>Solve 從main函數說起: 1.gflags庫中爲main函數設置usage信息 是google的一個開源的處理命令行的參數的庫.在使用命令行參數的文件夾文件中(源文件或頭文件),首先使用以下定義語句進行變量的定義. DEFINE_int32, DEFINE_int64, DEFINE_bool等, 語法爲:DEFINE_int32(name,default_value,"…
生产者 双缓冲组与信号量机制 在第陆章中提到了,如何模拟,以及取代根本不存的Q.full()函数. 其本质是:除了为生产者提供一个成品缓冲队列,还提供一个零件缓冲队列. 当我们从外部给定了固定容量的零件之后,生产者的产能就受到了限制. 由两个阻塞队列组成的QueuePair,并不是Caffe的独创,它实际上是生产者与消费者的编程方式之一. 在大部分操作系统教材中,双缓冲区free.full通常由两个信号量empty.full实现. 信号量(Semaphore)由操作系统底层实现,并且几乎没有人会…
wangxiao@wangxiao-GTX980:~/Downloads/caffe-master$ make -j8find: `wangxiao/bvlc_alexnet/spl': No such file or directoryfind: `caffemodel': No such file or directoryfind: `wangxiao/bvlc_alexnet/0.77': No such file or directoryfind: `caffemodel': No su…
一.深度学习中常用的调节参数 本节为笔者上课笔记(CDA深度学习实战课程第一期) 1.学习率 步长的选择:你走的距离长短,越短当然不会错过,但是耗时间.步长的选择比较麻烦.步长越小,越容易得到局部最优化(到了比较大的山谷,就出不去了),而大了会全局最优 一般来说,前1000步,很大,0.1:到了后面,迭代次数增高,下降0.01,再多,然后再小一些. 2.权重 梯度消失的情况,就是当数值接近于正向∞,求导之后就更小的,约等于0,偏导为0 梯度爆炸,数值无限大 对于梯度消失现象:激活函数 Sigmo…
历时5天终于完成了,配置中出现了各种各样的Error,这里记录一下,希望能为正在安装的人提供一点帮助. 配置中主要参考博客:http://blog.csdn.net/yhaolpz/article/details/71375762#reply 安装硬件: GeForce GTX 1070/PCIe/SSE2 安装流程细分为如下10个步骤: 1.安装依赖包 2.禁用 nouveau 3.配置环境变量 4.NVIDIA驱动安装 5.安装 CUDA 8.0 6.验证 CUDA 8.0 是否安装成功 7…
@author:oneBite 本文记录编译使用caffe for windows 使用环境 VS2013 ultimate,win7 sp1,caffe-windows源码(从github上下载caffe的windows分支,下载解压之后,不要改变原有的目录结构,因为solution rebuild时会使用文件的相对路径) 编译过程 根据需要修改caffe-windows\caffe-windows\windows\CommonSettings.props.本次编译生成不使用GPU和CuDNN…
1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验证识别效果又当如何呢? 观察CAFFE_ROOT/examples/mnist/下的lenet_train_test.prototxt文件,发现里面既给出了训练集的路径,又给出了测试集的路径.因此答案很显然了,我们可以把自己的测试集做成leveldb(或lmdb)格式的,然后在lenet_train…
参考:http://www.echojb.com/cuda/2017/03/15/350138.html https://www.zhihu.com/question/56111727 第一步:首先确定你当前的window版本(win 7,win8,win10),操作系统(32,64),是否GPU等.本人CPU GPU均配置完成,但是如果要做深度实验的话,除非你cpu配置特别高,否则还是建议GPU来跑. 第二步:确定好了当前的计算机情况,下面就开始下载相关文件 (1) 首先确定自己是否安装vs2…
https://blog.csdn.net/flygeda/article/details/78638824 本文主要是对近期参考的网上各位大神的博客的总结,其中,从安装系统到跑通程序过程中遇到的各种问题,笔者会详细分析,有一些问题在网上都查不到.这些环境配置上的坑希望以后不要再踩到一.安装Ubuntu 16.04双系统原文是“简书”上的大神的帖子,非常详细,笔者完全按照文章的步骤安装的,并没有遇到问题 : Win10和Ubuntu16.04双系统安装详解:Ubuntu镜像官网下载,Ubuntu…
首先修改src/caffe/proto/下的caffe.proto,修改好后需要编译 然后修改include/caffe/layers/logwxl_layer.hpp 然后修改src/caffe/layers/logwxl_layer.cpp和logwxl_layer.cu 最后make all ,make test ,make runtest 在make runtest的时候,卧槽有一个错误,好像是没有updateV1parameter什么的,但是不影响最后的训练…
0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windows 7 64bit系统上安装了Ubuntu 14.04 64bit系统,链接在此,以此来搭建Caffe GPU版本): 2. 确定GPU支持CUDA 输入: lspci | grep -i nvidia 显示结果: 我的是GTX 650,然后到http://developer.nvidia.com…
本文在windows下使用visual studio2013配置关联python(python-2.7.12.amd64.msi)的caffe项目,如果有耐心的人,当然可以自己去下载caffe项目自己进行编译,由于我比较懒,所以这里我利用微软自己移植的caffe进行部署,就不尝试编译官方的caffe(听说自己编译需要解决各种坑),微软移植的解决方案编译确实很方便,解决一些引用就ok了.   (一)Caffe微软官方GitHub 下载地址:https://github.com/Microsoft/…
浅析py-faster-rcnn中不同版本caffe的安装及其对应不同版本cudnn的解决方案 本文是截止目前为止最强攻略,按照本文方法基本可以无压力应对caffe和Ross B. Girshick的代码安装配置,如有转载请注明出处 Copyright 飞翔的蜘蛛人 注1:本人新手,文章中不准确的地方,欢迎批评指正 注2:阅读本文前请先熟悉: 1)      Linux的基本操作 2)      熟悉Ubuntu系统下nvidia驱动及cuda安装,请见我的另一篇博客 基于UBUNTU14.04…
Caffe+CUDA7.5+CuDNNv3+OpenCV3.0+Ubuntu14.04  配置参考文献 ---- Wang Xiao Warning: Please make sure the cuda is installed correctly, before you reboot your PC, or  you may stucked and can not open your system. Check in your terminal: nvidia-smi If it shown…
caffe的配置过程 转:http://blog.csdn.net/brightming/article/details/51106629   版权声明:本文为博主原创文章,欢迎转载!转载请写明原文链接出处! 这篇文章可参考:http://www.cnblogs.com/cj695/p/4498270.html下载caffe拷贝Make.config.example Make.config修改Make.config 取消注释cpu-only,注释掉cuda相关的-----------------…
我最近安装安装了老版本的caffe,安装过程真是两个字"想死",所以我的错误一般都是比较经典的. 我是使用cuda的版本,所以可能会出现undefined refference to cudnn.h.这个时候该做的就是把所有版本全都装一遍试试,而如果不追求速度的话,直接转cudnn1,最原始的版本,一般不会有问题.gpu版本一定是比cpu快n倍的,这个不用怀疑. 在编译caffe的时候,报错: couldn't find hdf5.h 在网上很容易找到普通解决方法: --- INCLU…
一,为什么要开启这个查询呢? 数据库是很容易产生瓶颈的地方,现在Nosql大家讨论这么热,估计都被数据库搞郁闷了.mysql中最影响速度的就是那些查询非常慢的语句,这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等,所以我们要找出这些语句,分析原因,加以优化.这也是发这篇博文的原因 二,开启mysql的慢查询 方法1,用命令开启慢查询 mysql> show variables like "%long%";         //查看一下默认为慢查询的时间10秒 +-…
root@k-Lenovo:/home/k# sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler root@k-Lenovo:/home/k# sudo apt-get install --no-install-recommends libboost-all-dev root@k-Lenovo:~# sudo apt…
TanH / Hyperbolic Tangent 类型(type):TanH CPU 实现: ./src/caffe/layers/tanh_layer.cpp CUDA.GPU实现: ./src/caffe/layers/tanh_layer.cu 例子 layer { name: "layer" bottom: "in" top: "out" type: "TanH" } 对于每一个输入值x,TanH layer的输出为…
原文:http://caffe.berkeleyvision.org/tutorial/layers.html 参考:http://blog.csdn.net/u011762313/article/details/47361571#vision-layers 记:总感觉对于caffe是一知半解,要深入深度学习,以及更好的去工程和实验,详细学习caffe是必须的. Layers 要想创建一个Caffe模型,需要在prototxt中定义一个model architecture(模型架构). Caff…
今天一个同学问 卷积过程好像是对 一个通道的图像进行卷积, 比如10个卷积核,得到10个feature map, 那么输入图像为RGB三个通道呢,输出就为 30个feature map 吗, 答案肯定不是的, 输出的个数依然是 卷积核的个数. 可以查看常用模型,比如lenet 手写体,Alex imagenet 模型, 每一层输出feature map 个数 就是该层卷积核的个数. 1. 一通道单个卷积核卷积过程 2. 一通道 多个卷积核卷积过程 一个卷积核得到的特征提取是不充分的,我们可以添加…
Caffe在1.0版本仅支持两种信号的处理: 1) SIGHUP 2) SIGINT SIGHUP:caffe接收到此信号后进行snapshot,并不会中断caffe的训练. SIGINT:caffe接收到此信号后进行snapshot,并退出. 参考issue #2012对这个问题的讨论.在PR 2253中对这两种信号做了支持,在Solver中回调信号检查函数. 当我们使用kill PID来停止caffe进程时发送的是SIGTERM(15)信号,caffe并没有处理,将直接退出. 如果我们想让它…
最近项目急需C++ 的知识结构,虽说我有过快速学习很多新语言的经验,但对于C++ 老特工我还需保持敬畏(内容太多),本文会从一个Java程序员的角度,制定高效学习路线快速入门C++ . Java是为了就业,C++ 是信仰.(C++ 是教学.信仰.商业这三个原本互斥的概念(这三个概念也是三个阶段,正好可以陪我们一起成长)的偏偏集合体) 关键字:C++ ,基本语法,C++ 与Java对比,环境搭建,helloworld,C++ 工具,C++ 类库,抽象机制,并发 热身 基本思想 这一章是高屋建瓴,为…
说明: Caffe自带的图像转LMDB接口只支持单label,对于多label的任务,可以使用HDF5的格式,也可以通过修改caffe代码来实现.本篇文章介绍怎么通过修改DataLayer来实现带Multilabel的lmdb格式数据输入的分类任务. --- 本文参考自 : Caffe实现多标签分类支持Multi-Label的lmdb数据格式输入 caffe实现多标签分类模型 1. 总体介绍 共修改5个文件,: $CAFFE_ROOT/src/caffe/proto/caffe.proto $C…
Caffe + CUDA8.0 + CuDNNv5.1 + OpenCV3.1 + Ubuntu14.04  配置参考文献 ---- Wang Xiao  Anhui University  CVPR Group   2017-05-27 Warning: Please make sure the cuda is installed correctly, before you reboot your PC, or  you may stucked and can not open your sy…