caffe
piaopiaopiaopiaopiao
这个作者很懒,什么都没留下…
展开
-
[caffe] 史上最透彻的lenet.prototxt解析
// 输入层的定义:name: "LeNet" (网络的名字) layer { (定义一个网络层) name: "data" (网络层的名字为 data) type: "Input" (网络层的类型,输入) top: "data" (该网络层的输出叫 data ) input_param { shape: { dim: 64 dim: 1 dim: 28 dim: 28 }...转载 2020-04-12 22:37:46 · 183 阅读 · 0 评论 -
史上最透彻的lenet.prototxt解析
// 输入层的定义:name: "LeNet" (网络的名字) layer { (定义一个网络层) name: "data" (网络层的名字为 data) type: "Input" (网络层的类型,输入) top: "data" (该网络层的输出叫 data ) input_param { shape: { dim: 64 dim: 1 dim: 28 dim: 28 }...转载 2020-04-12 22:01:37 · 180 阅读 · 0 评论 -
详解深度学习之经典网络架构(二):AlexNet
原文:https://blog.csdn.net/chenyuping333/article/details/82178335卷积层的pad:pad: 扩充边缘,默认为0,不扩充。 扩充的时候是左右、上下对称的,比如卷积核的大小为5*5,那么pad设置为2,则四个边缘都扩充2个像素,即宽度和高度都扩充了4个像素,这样卷积运算之后的特征图就不会变小。也可以通过pad_h和pad_w来分别设定...原创 2020-04-12 14:23:17 · 186 阅读 · 0 评论 -
【caffe】线程封装类
test.hpp#ifndef __INTERNAL_THREAD_HPP__#define __INTERNAL_THREAD_HPP__#include <boost/thread.hpp>#include <boost/shared_ptr.hpp>using boost::shared_ptr;namespace boost { class th...原创 2019-01-17 11:01:50 · 116 阅读 · 0 评论 -
神经网络权重梯度的推导
本文转自:https://cloud.tencent.com/developer/news/208702--------------------------------------------------------------------------------------------------------bp神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是...转载 2019-01-02 15:51:43 · 4281 阅读 · 0 评论 -
监督学习——随机梯度下降算法(sgd)和批梯度下降算法(bgd)
线性回归 首先要明白什么是回归。回归的目的是通过几个已知数据来预测另一个数值型数据的目标值。 假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就是要预测的目标值。这一计算公式称为回归方程,得到这个方程的过程就称为回归。 假设房子的房屋面积和卧室数量为自变量x,用x1表示房屋面积,x2表示卧室数量;...转载 2019-01-02 16:49:20 · 880 阅读 · 0 评论 -
caffe--net.cpp解析
本文转自:https://blog.csdn.net/gaoenyang760525/article/details/72874816template <typename Dtype>void Net<Dtype>::Init(const NetParameter& in_param) { CHECK(Caffe::root_solver() || ro...转载 2019-01-02 18:00:34 · 291 阅读 · 0 评论 -
梳理caffe代码layer(五)
本文转自:https://blog.csdn.net/langb2014/article/details/50988275#ifndef CAFFE_LAYER_H_ #define CAFFE_LAYER_H_ #include <algorithm> #include <string> #include <vector> ...转载 2019-01-15 09:07:42 · 161 阅读 · 0 评论 -
智能指针share_ptr 简单剖析
本文转自:https://blog.csdn.net/gease_lcj/article/details/79097671话不多说直接上码! //shared_ptr的简单实现版本 基于引用记数的智能指针 namespace boost //空间库boost{ template<class T> class shared_ptr { t...转载 2019-01-09 15:48:11 · 198 阅读 · 1 评论 -
使用linux的GDB打印STL(vector,map,set..................)
本文转自:https://www.cnblogs.com/silentNight/p/5466418.html在linux用gdb或者cgdb计较不爽的地方是无法打印STL的东西,所有啊去网上找了找解决方案https://www.douban.com/note/182826844/?qq-pf-to=pcqq.c2c本帖把怎么配置这个东西写出了,万一以后忘了,可以回头找找。首先是下载g...转载 2019-01-15 16:53:28 · 1991 阅读 · 0 评论 -
net.cpp/net.hpp代码解析
暂时只为net::init函数添加了注释,未完待续!#include <algorithm>#include <map>#include <set>#include <string>#include <utility>#include <vector>#include "hdf5.h"#includ原创 2019-01-15 19:01:23 · 275 阅读 · 0 评论 -
从零开始山寨Caffe·肆:线程系统
本文转自:https://www.cnblogs.com/neopenx/p/5200519.html用户线程与内核线程 广义上线程分为用户线程和内核线程。前者已经绝迹,它一般只存在于早期不支持多线程的系统中。它用模拟的方式实现一个模拟的多线程系统,不支持异步。即,一个线程被阻塞了,其它线程也会被阻塞。当今的操作系统几乎都默认提供了内核线程API,底层由操作系统实现。...转载 2019-01-16 13:40:02 · 192 阅读 · 0 评论 -
gflags库使用
test.cpp#include <stdio.h>#include <iostream>#include "gflags/gflags.h"DEFINE_string(solver, "", "The solver definition protocol buffer text file.");main(int argc, char** argv...原创 2019-01-17 10:58:01 · 398 阅读 · 0 评论 -
base_data_layer.cpp/base_data_layer.hpp代码分析
base_data_layer.hpp:#ifndef CAFFE_DATA_LAYERS_HPP_#define CAFFE_DATA_LAYERS_HPP_#include <vector>#include "caffe/blob.hpp"#include "caffe/data_transformer.hpp"#include "caffe/internal_...原创 2019-01-15 13:24:25 · 337 阅读 · 0 评论 -
【caffe】internal_thread.cpp/internal_thread.hpp代码解析
thread_(线程)创建函数为:thread_.reset(new boost::thread(&InternalThread::entry, this, device, mode, rand_seed, solver_count, root_solver));thread_作为shared_ptr<boost::thread>对象,自然可以调用shared_ptr&...转载 2019-01-04 10:49:18 · 280 阅读 · 0 评论 -
【caffe】模板分离编译模式和工厂模式
本文转自: https://blog.csdn.net/raby_gyl/article/details/68489152 caffe中的模板分离编译模式和工厂模式1.caffe中模板分离编译模式的实现方式是在每一个模板源文件的最后添加一条类似于下面的语句:INSTANTIATE_CLASS(PowerLayer);该方法属于文献[1]中所说的显示实例化方法。2.caffe中工厂模...转载 2018-11-19 14:22:25 · 552 阅读 · 0 评论 -
C/C++宏调试
调试文件test.c,代码如下:#include <stdlib.h>#include <stdio.h>#define MACRO1(x) (++(x))#define MACRO2(x) (MACRO1(x)+100)#define MACRO3(x) (MACRO2(x)+200)int main(void){ int a = 0; ...原创 2018-11-19 15:11:57 · 760 阅读 · 0 评论 -
Caffe学习(十)protobuf及caffe.proto解析
本文转自:https://blog.csdn.net/u012177034/article/details/53944901使用protobuf的原由一个好的软件框架应该要有明确的输入和输出,对于CNN网络而言,其主要有两部分组成:网络具体结构和网络的具体优化算法及参数。对于框架的使用者而言,用户只需输入两个描述文件即可得到对该网络的优化结果,这无疑是非常方便的。caffe框架选择使用谷...转载 2018-11-22 19:35:25 · 2347 阅读 · 0 评论 -
Caffe代码解析(3)
本文转自:http://alanse7en.github.io/caffedai-ma-3/在上文对Google Protocol Buffer进行了简单的介绍之后,本文将对caffe的Command Line Interfaces进行分析。本文将从一个比较宏观的层面上去了解caffe怎么去完成一些初始化的工作和使用Solver的接口函数,本文将主要分为四部分的内容:Google Fl...转载 2018-11-22 19:47:05 · 420 阅读 · 0 评论 -
Google数据交换格式:ProtoBuf
本文转自:https://www.cnblogs.com/chenny7/p/5157335.htmlProtocolBuffer是Google公司的一个开源项目,用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。 一个例子...转载 2018-11-23 09:37:59 · 422 阅读 · 0 评论 -
Caffe学习系列(10):命令行解析
本文转自:https://www.cnblogs.com/denny402/p/5076285.htmlcaffe的运行提供三种接口:c++接口(命令行)、python接口和matlab接口。本文先对命令行进行解析,后续会依次介绍其它两个接口。caffe的c++主程序(caffe.cpp)放在根目录下的tools文件夹内, 当然还有一些其它的功能文件,如:convert_imageset....转载 2018-11-23 13:57:46 · 112 阅读 · 0 评论 -
C++ explicit关键字详解
本文转自:http://www.cnblogs.com/rednodel/p/9299251.html首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢...转载 2018-11-27 08:52:11 · 1929 阅读 · 0 评论 -
从零开始山寨Caffe·贰:主存模型
本文转自:https://www.cnblogs.com/neopenx/p/5190282.html从硬件说起物理之觞大部分Caffe源码解读都喜欢跳过这部分,我不知道他们是什么心态,因为这恰恰是最重要的一部分。内存的管理不擅,不仅会导致程序的立即崩溃,还会导致内存的泄露,当然,这只针对传统CPU程序而言。由于GPU的引入,我们需要同时操纵俩种不同的存储体:一个受北桥控制...转载 2018-11-27 16:13:44 · 144 阅读 · 0 评论 -
layer_factory.hpp/layer_factory.cpp代码解析
/** * @brief A layer factory that allows one to register layers. * During runtime, registered layers could be called by passing a LayerParameter * protobuffer to the CreateLayer function: * * ...原创 2019-01-15 13:24:14 · 460 阅读 · 1 评论 -
C++ template调试方法
template函数/类一定要具化后才能调试。如下代码:#include <iostream>using namespace std;template <typename T>T add(T a, T b){ return (a + b);}int main(){ int sum = 0; sum = add<int>(3,...原创 2018-12-10 11:01:08 · 2217 阅读 · 0 评论 -
【caffe】syncedmem.cpp/syncedmem.hpp代码解析
该模块主要用于同步CPU端和GPU端内存数据#ifndef CAFFE_SYNCEDMEM_HPP_#define CAFFE_SYNCEDMEM_HPP_#include <cstdlib>#include "caffe/common.hpp"namespace caffe {// If CUDA is available and in GPU mode, h...原创 2019-01-03 19:00:11 · 204 阅读 · 0 评论 -
makefile规则之order-only依赖 ----- |
本文转自:https://blog.csdn.net/Swartz2015/article/details/79828841 最近在看caffe的代码,首先不得不说caffe的代码写的这是结构清晰,代码简洁。后续我也会写关于caffe源码解析的博文。今天主要是看一下makefile规则里面的一个order-only依赖规则。我们都知道makefile构建工程的基本语句是:targets...转载 2018-11-20 16:36:45 · 372 阅读 · 0 评论