Caffe
Huo的藏经阁
linux爱好者,平时喜欢阅读内核源码,从源码角度解开操作系统神秘面纱
展开
-
caffe prototxt 可视化工具
一个caffe prototxt在线可视化工具:http://ethereon.github.io/netscope/#/editor直接将prototxt文件内容复制到左边即可下面是LeNet-5的可视化结构,其中5为5个隐藏层的意思name: "LeNet"layer { name: "mnist" type: "Data" top: "data" top: "...原创 2019-12-20 14:25:11 · 420 阅读 · 0 评论 -
Caffe中如果高效实现卷积层
卷积层是caffe中比较关键的的一个层,其里面实现运用了大量技巧,关键卷积层的实现可以看看贾清杨是如何吐槽的https://github.com/Yangqing/caffe/wiki/Convolution-in-Caffe:-a-memo按照一般卷积层的实现思路就是用多层循环来实现,针对一个W*H的图片,深度为D, 卷积kernel为K*K, 共有M个滤波,则实现一般如下for ...原创 2019-12-18 18:33:38 · 189 阅读 · 0 评论 -
Caffe之DataTransformer
DataTransformer主要是对caffe中的输入数据进行预处理,它虽然不是单独的一个层,但是对与整个Data Layer非常重要,涉及到对原始数据预处理,故需要特别说明一下,DataTransformer预处理主要提供的预处理方法有随机切换(crop),镜像(mirror),输入数据缩放(scale),去均值(mean),灰度图与彩色图变换等。message Transformatio...原创 2019-12-07 11:01:03 · 422 阅读 · 0 评论 -
剖析Caffe源码之InputLayer
ImageDataLayer可以完成caffe自动读取图片进行模型训练和推断,但是在实际的应用中一般图像都是通过sensor采集而来,将采集得到的图片送到训练好的模型中进行识别、推断,此时就需要用到InputLayer,可以是用户完成传送到网络中,是一个标准的输入层。InputLayer para按照老规矩,学习caffe的一个层首先需要了解其入参 ,查看caffe.prot0文件:...原创 2019-11-30 09:44:11 · 458 阅读 · 0 评论 -
ubuntun 16.04 protobuf安装过程
由于caffe的数据结构以及模型参数是采用的google protobuf在按照caffe之前需要首先安装protobuf具体安装过程可以参考官网的github说的比较清楚https://github.com/protocolbuffers/protobuf/blob/master/src/README.md准备安装前需要首先安置protobu依赖的工具,如下列表:autoco...原创 2019-11-26 19:13:11 · 358 阅读 · 0 评论 -
caffe 添加自定义层(custom layer)
在《剖析Caffe源码之Layer》可以知道layer是所有层的基类,由此类派生出各种不同的不同的层,其如下图所示:由此扩展出了各种不同的层,基本能满足要求,但是有时候在搭建拓扑网络时,所需要的层并没有实现,这时就需要用户自己新添加一个layer。添加layer过程相对较为简单,下面将举一个例子进行说明。用例下面将以双曲线余弦函数为例子,说明添加一个custom layer过程:...原创 2019-11-24 10:31:38 · 843 阅读 · 0 评论 -
深度学习中图像预处理均值
图像中的均值,均方差等名字解释均值表示信号中直流分量的大小,一般用E(x)表示,其公式为:对于高斯白噪声而言,其均值为0.均方值表示信号平方后的均值,一般用E(x^2)表示,一般是用来表示信号的平均功率均方差简写为MSE(mean square error),表示各项数据偏离真实值得距离平方和的平均数方差 一般使用variance 或deviatio...原创 2019-11-17 11:58:31 · 1580 阅读 · 0 评论 -
神经网络浅讲:从神经元到深度学习
一个讲解神经网络比较好的帖子,主要是入门,由于太长直接上链接,方便后面重新看http://www.cnblogs.com/subconscious/p/5058741.html原创 2019-11-16 09:59:50 · 132 阅读 · 0 评论 -
剖析Caffe源码之ImageDataLayer
目录ImageDataLayer参数Sourceroot_foldernew_height、new_widthis_colorcrop_sizePrototxt配置ClassImageDataLayer继承关系源码DataLayerSetUp获取参数解析Source文件获取样本数量shuffle处理skip处理计算输出top sh...原创 2019-11-03 14:34:05 · 424 阅读 · 0 评论 -
剖析Caffe源码之Net类变量
在《解析Net的构造函数源码》过程中,可以看到Net类有很多变量,用于存储网络中的各种信息,caffe中类的变量命名规则统一在变量名中加上'_',查看net.hpp代码可以看到使用了很多变量,理解这些变量对了解caffe源码细节非常重要,因此笔者特意用一个小节来介绍这个变量的作用和意义.源码net.hpp变量大概如下:/// @brief The network name strin...原创 2019-11-03 10:32:12 · 311 阅读 · 0 评论 -
剖析Caffe源码之Net---Net构造函数
目录Net构造函数读取PrototxtReadProtoFromTextFileUpgradeNetAsNeeded设置网络状态Init函数FilterNetInsertSplits调整参数Vector空间大小创建每层Layer保存输入输出BlobAutoTopBlobsSetUp设置权重和计算占用内存设置训练参数根据反向...原创 2019-10-27 11:47:33 · 810 阅读 · 2 评论 -
Caffe源码导读
1.前言目前的图像和自然语言处理很多地方用到了神经网络/深度学习相关的知识,神奇的效果让广大身处IT一线的程序猿GG们跃跃欲试,不过看到深度学习相关一大串公式之后头皮发麻,又大有放弃的想法。从工业使用的角度来说,不打算做最前沿的研究,只是用已有的方法或者成型的框架来完成一些任务,也不用一上来就死啃理论,倒不如先把神经网络看得简单一点,视作一个搭积木的过程,所谓的卷积神经网络(CNN)或者循...转载 2019-10-25 07:36:52 · 605 阅读 · 0 评论 -
剖析Caffe源码之Net---NetParameter参数
前面几篇文章主要分析了Caffe中的Blob和Layer源码,了解到了Caffe中的参数数据结构文件caffe.proto,掌握了各个Layer是如何注册到Caffe中,下面将分析Net层。在分析Net层之前首先要了解Net层入参NetParameter#1NetParameterNetParameter参数数据结构同一定义在caffe.proto文件中,其结构总体如下:...原创 2019-10-24 10:41:32 · 1168 阅读 · 0 评论 -
剖析Caffe源码之Net(上)---NetParameter参数
前面几篇文章主要分析了Caffe中的Blob和Layer源码,了解到了Caffe中的参数数据结构文件caffe.proto,掌握了各个Layer是如何注册到Caffe中,下面将分析Net层。在分析Net层之前首先要了解Net层入参NetParameterNetParameterNetParameter参数数据结构同一定义在caffe.proto文件中,其结构总体如下:messag...原创 2020-12-01 21:15:28 · 339 阅读 · 0 评论 -
剖析Caffe源码之Layer_factory
在<剖析Caffe源码之Layer>,对Layer代码进行了基本分析,可以知道Layer是所有的其他Layer的基本类,由此来扩展出各个神经网络中所需要的Layer,体现了caffe的可扩展性.那么问题来了,既然caffe中定义了各种Layer,那边在实际运行中,caffe是如何知道执行到做需要的Layer type的Layer?,下面将这层洋葱给剥掉.在这里将不得不提到caffe中的Laye...原创 2019-10-23 16:27:27 · 557 阅读 · 0 评论 -
Protobuf介绍及简单使用(下)之文件读写
目录Bin二进制文件写bin文件API用例一读bin文件API用例二Prototxt文件写Prototxt文件API用例三读Prototxt文件API用例四caffe中的prototxt参考资料在上节中主要介绍了Protobuf的数据结构定义的语法,以及如何编译proto文件,以及相关的主要读写proto文件结构中的API.至今已经知道如何定义一...原创 2019-10-18 16:20:42 · 7590 阅读 · 1 评论 -
剖析Caffe源码之Layer
目录Layer介绍Layer分析LayerParameterClassLayerLayer派生类Layer源码Layer构造函数SetUp函数Forward函数Backward函数总结参考资料Layer介绍如果将caffe比作成一个大楼,那么Blob就是盖成大楼的每块砖瓦,而Layer就是用Blob组成的一层层楼房,layer是神经网络中...原创 2019-10-17 10:44:25 · 946 阅读 · 0 评论 -
Protobuf介绍及简单使用(上)
目录Protobuf介绍优势protobuf语法Specifying Field RulesData typeData nameNumberProtobuf注释保留字段与标识符syntax关键词分号Protocol字段设置获取成员值Packed 编码optional default设置用例proto文件编译proto文件...原创 2019-10-14 18:52:48 · 9113 阅读 · 0 评论 -
深入学习卷积神经网络(CNN)的原理知识
目录一:如何帮助神经网络识别图像?案例一案例二案例三案例四案例五所以我们做了什么?2 :什么是神经网络?3 :什么是卷积神经网络?3.1 案例3.2 图像输入3.3 提取特征3.4 卷积(convolution)3.5 池化(Pooling)3.6 激活函数RelU(Rectified Linear Units)3.7 深度神经网...转载 2019-10-14 11:12:32 · 2888 阅读 · 1 评论 -
剖析Caffe源码之Blob
目录介绍用例Class BlobBlob主要源码分析Blob构造函数Blob各个维度大小设置Blob维度信息获取Blob计算偏移量Blob数据存储与读取相关操作Blob数据操作Blob源码总结SyncedMemoryClassSyncedMemorySyncedMemory源码分析SyncedMemory构造函数CPU内存相关操作...原创 2019-10-12 16:19:25 · 726 阅读 · 0 评论 -
解决/usr/local/lib/libglog.so.0: error adding symbols: DSO missing from command line
第一步:// 查看目录 /usr/lib 或 /usr/local/lib的目录下是否存在libglog.so.0$ find libglog*libglog.alibglog.lalibglog.solibglog.so.0libglog.so.0.0.0如果不存在需要安装,方法如下:1. Google Logging Library(glog),下载地址:http...转载 2019-10-09 16:27:34 · 4633 阅读 · 0 评论 -
Caffe源码目录
Caffe源码目录下运行:tree -d命令可以查看目录结构├── build -> .build_release //编译结果存放目录├── cmake //cmake 编译│ ├── External│ ├── Modules│ └── Templates├── data //数据存放目录,存放原始数据以及获取数据脚本│ ├── cifar10 /...原创 2019-10-09 13:55:56 · 471 阅读 · 0 评论 -
ubuntun 16.04环境安装Caffe过程
本文基于ubuntu 16.04环境,1:安装caffe,首先需要安装其依赖库: sudo apt-get install libprotobuf-dev sudo apt-get install libleveldb-dev sudo apt-get install libsnappy-dev sudo apt-get install libopencv-dev sudo ap...原创 2019-10-08 16:57:54 · 465 阅读 · 0 评论