我看的一下午才明白的,因为吧,我之前都是不知道与boost::thread相关的任何知识,然后开始看各种资料啊... 妈的,我就是一个小白,没一点基础的.. 总的来说:blocking_queue实现一个阻塞队列,它利用了生成者与消费者的设计模式,怎么说呢?. 首先吧,你要有一个queue(队列,c++里的一种容器),对它的操作有push与pop. push即向队列里压入数据,相当于一个生产者,然后呢,pop把数据弹出队列,相当于一个消费者..但是呢,生产者与消费者的速度可能不一样(即push与…
1.Setup() Layer初始化参数 (1.完成层参数的读入.处理 2.设置底层顶层的shape,在前向传播前完成) InitMutex CheckBolbCounts: LayerSetup:data Layer 参数共享. Reshape:设置Top Blobs和内部buffers的维数 SetLossWeights: 2.…
filler.hpp文件:(它应该没有对应的.cpp文件,一切实现都是在头文件中定义的,可能是因为filler只分在网络初始化时用到那么一次吧) 1,首先定义了基类:Filler,它包括:一个纯虚函数:filler(用于在子类里根据不同的情况具体实现) 一个数据:filler_param_(类型为FillerParameter,这是在proto里定义的) 2 定义具体子类继承的实现:共有7种请况(这是用来给权值初始化的7种方法 ): constant gaussian positive_unit…
在 SQL Server 创建或修改「存储过程(stored procedure)」时,可加上 WITH RECOMPILE 选项,但多数文档或书籍都写得语焉不详,或只解释为「每次执行此存储过程时,都要重新编译」.事实上,是指执行此一存储过程时,要强制重新产生「执行计划(execution plan)」,而不要从「缓存(cache)」去取得旧的「执行计划」. SQL Server 在评估与产生「执行计划」时,非常耗 CPU 资源,因此,如何让其正确地从 cache 中,重复使用旧的「执行计划」就…
Blob类是caffe中对处理和传递的实际数据的封装,是caffe中基本的数据存储单元,包括前向传播中的图像数据,反向传播中的梯度数据以及网络层间的中间数据变量(包括权值,偏置等),训练模型的参数等等,可以说在caffe中,无数据不blob. blob可以认为是按C风格连续存储的N维数组,在硬件上可以认为是在内存中的一块连续的内存块. 补充一点智能指针的知识: C++中的动态内存管理是通过new和delete运算符完成的,没有及时delete释放内存或者提前释放内存都可能造成内存异常,导致内存泄…
SyncedMemory类主要负责在主机(CPU)和设备(GPU)之间管理内存分配和数据同步工作,封装了CPU和GPU之间的数据交互操作. 补充一点GPU的相关知识: 对CUDA架构而言,主机端的内存被分为两种,一种是可分页内存(pageable memroy)和页锁定内存(page-lock或 pinned).可分页内存是由操作系统API malloc()在主机上分配的,页锁定内存是由CUDA函数cudaHostAlloc()在主机内存上分配的,页锁定内存的重要属性是主机的操作系统将不会对这块…
报错原因:lmdb不可用 解决方法:Makefile.config将此处更改 CPU_ONLY := 1 #如果只使用CPU的话就改这个,使用GPU的不需要改 USE_OPENCV := 1 #有安装OPENCV的改这个,没有的不需要改 USE_LEVELDB := 1 USE_LMDB := 1…
[训练测试过程记录]Faster-RCNN用于场景文字检测 原创 2017年11月06日 20:09:00 标签: 609 编辑 删除 写在前面:github上面的Text-Detection-with-FRCN项目是基于py-faster-rcnn项目在场景文字识别领域的扩展. 和py-faster-rcnn相比,该项目的主要改动为:将检测类别换成了背景和文字,并且更改了数据集. 对于初学者而言,要实现一个自己的baseline,第一步可以尝试训练别人已经实现了的网络,看看整个的运行流程是怎么…
Abstract 安装好Segnet并使用Python进行训练和测试之后,考虑项目的应用,需要在C++的工程环境下进行继续开发,所以这里的主要内容是用C++建立工程,使用相应的数据集和权重参数文件进行测试. Caffe本身就是用C++开发的,所以也提供了相应的C++接口.作为简单的测试和学习,这里采用开源代码里的SegNet_with_C++进行测试,主要熟悉相关流程.在SegNet的目录下,examples/SegNet_with_C++里包含test_segmentation.cpp.可以使…
首先说明:下面的内容不一定对 类body: 变量:LayerParameter param_ :它里面放的是:body传进来的layerparameter的参数: BlockingQueue<shared_ptr<QueuePair> > new_queue_pairs_:这是一个队列,它里面放的是一个队列对指针, 它的初始化:由传入的layerparameter参数赋值param_变量,并开启一个相应的进程: 它的析构函数:让进程停下来: 开启的这个进程它会干什么呢??用来读数据…