caffe
Yan_Joy
这个作者很懒,什么都没留下…
展开
-
caffe学习(1)caffe模型三种结构
caffe模型三种结构 自己写的然而CSDN出bug了,绑定三方账户原来的博客无法编辑,只好转发过来 Blobs, Layers, and Nets: anatomy of a Caffe modelBlob:存储和传递(communication)blob是数据存储和传输的包装,并且还在底层提供CPU和GPU之间的同步能力。Blob提供了保存数据的统一存储器接口; 例如图像批次,模型参转载 2016-11-05 21:49:29 · 3267 阅读 · 0 评论 -
Caffe-faster-rcnn demo测试
RCNN是目前detection中较新且准确度较高的方法,充分发挥了CNN分类的优势,但速度并不快,从而产生了fast rcnn和faster rcnn来解决这个问题。本文使用py-faster-rcnn对该方法做一初步测试。 rbgirshick/py-faster-rcnn环境准备软件环境CaffePython一般来说这些我们都已经有所接触,但仍有一些需要注意的地方:要使用rbgi原创 2016-11-12 15:06:15 · 6876 阅读 · 6 评论 -
转:Caffe 训练时loss等于87.33的原因及解决方法
如题,在caffe训练时,遇到这个特殊的数字之后,loss会一直就是这个数字。 网上虽然有很多针对这个问题调参的trick,但少有详细的分析,因此,有必要研究一下caffe的源代码。 softmax的公式为 pk=exp(xk)∑iexp(xi)其中x为softmax前一层的输出softmax的loss计算公式也很简单,就是对softmax之后预测的概率做对数似然函数转载 2016-12-13 13:12:35 · 4708 阅读 · 0 评论 -
caffe自定义层
developing new layer开发一个新层添加一个层的类声明到:include/caffe/layers/your_layer.hpp。 包括type的内联实现方法覆盖virtual inline const char* type() const { return "YourLayerName"; },将YourLayerName替换为你的层名称。实现{*} Blobs()方法来指翻译 2016-12-19 18:22:26 · 3517 阅读 · 0 评论 -
Caffe-python interface 学习|网络定义详解
之前用的都是caffe的命令行接口,单独训练还行,不过看里面层的参数、数据还是很麻烦的。特别是这周实验遇到了比较大的问题,命令行无能为力,还是要好好看看python接口。python 接口编译这个一般在编译caffe时都会顺带完成,如果遇到ImportError: No module named caffe,可能是没有编译或者没有添加到路径。 编译可以在根目录下make pycaff原创 2017-01-06 16:41:09 · 3136 阅读 · 0 评论 -
Deepdream 实现
Deepdream是一年半前谷歌搞的一个深度学习“艺术品”,最近在cs231n课上看到了,感觉还是很interesting。环境准备deepdream还是基于python和caffe深度网络的,因此大概需要以下环境:Standard Python scientific stack: NumPy, SciPy, PIL, IPython. Those libraries can also be in原创 2017-01-11 18:34:38 · 9349 阅读 · 3 评论 -
Caffe python layer 的自定义
还是caffe的自定义层问题。相比于c,python的自定义层更为简单:代码少、外部文件少、方便执行。因此用这种方法实现有利于开发和实验。准备首先还是要记得在编译的时候加上WITH_PYTHON_LAYER的选项,如果没有加可以先make clean删除编译后的文件,再重新编译。WITH_PYTHON_LAYER=1 make && make pycaffe如果出现layer_factory.hpp翻译 2017-02-17 16:20:33 · 8740 阅读 · 16 评论 -
Generative Adversarial Nets
相比于传统的识别、分类工作,生成对抗网络以一种逆向的思维,让计算机有了一定的创造能力。这种创造在实际中有更大的意义,甚至在复杂的工作中也能取得良好的效果。首先看一下最初的Goodfellow的工作:Generative Adversarial Nets。介绍关于GAN,论文中有一个很恰当的比喻: The generative model can be thought of as analogou原创 2017-02-28 15:53:01 · 1467 阅读 · 0 评论 -
从零开始配置深度学习环境:ubuntu16.04 cuda opencv caffe 需要的库
有一台空闲的服务器,上面有一块K40的卡,原来的系统进不去了可以拿来搞一搞。。nvidia驱动这一步好像可以跳过,因为之后安装cuda能选择是否安装驱动。 上官网NVIDIA Driver Downloads找自己显卡的型号,看看适合的驱动编号是什么。 之后输入命令:sudo add-apt-repository ppa:graphics-drivers/ppasudo apt-get u原创 2017-03-29 11:14:17 · 3439 阅读 · 0 评论 -
caffe学习(11)python的数据可视化
caffe本身没有可视化的工具,一般需要配合python或matlab实现数据的可视化,在实践本文之前要先把caffe python编译好。另外有的服务器只有shell,没有可视化的界面,只好先把每一层的数据先保存成图片格式,再进行显示。 Caffe学习系列(14):初识数据可视化 Python and/or MATLAB Caffe (optional)载入数据 import nu转载 2016-11-09 16:24:15 · 1093 阅读 · 0 评论 -
caffe学习(10)数据转换img2db
在处理图像时,我们已拥有的图像往往是常用的jpg、png格式,但在caffe中,输入的数据类型常是lmdb或leveldb,因此我们需要对原始数据进行转换。 Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件convert_imageset在caffe中,提供了一个用于格式转换的文件:convert_imageset.cpp,存放在根目录下的tools文件夹下。编译转载 2016-11-08 17:12:54 · 893 阅读 · 0 评论 -
caffe学习(9)LeNet在Caffe上的使用
使用官网例程训练LeNet。 Training LeNet on MNIST with Caffe准备数据Caffe程序的运行要注意需命令行要在Caffe的根目录下。cd $CAFFE_ROOT./data/mnist/get_mnist.sh./examples/mnist/create_mnist.sh依次运行,会在caffe\examples\mnist下得到两个目录mnist_t原创 2016-11-08 15:57:37 · 5327 阅读 · 0 评论 -
caffe学习(2)前后传播,loss,solver
向前和向后传播 Forward and Backward前后传播是Net的重要组成,如下图所示: 向前Forward通过给定的参数计算每层的值,就像函数一样top=f(bottom)。 上图表示数据通过内积层输出,再由softmax给出损失。向后Backward向后是计算loss的梯度,每层梯度通过自动微分来计算整个模型梯度,即反向传播。 从这个图上可以看出,由loss开始,通过原创 2016-11-06 09:38:04 · 1412 阅读 · 0 评论 -
caffe学习(3)接口
接口Interfaces Interfaces Caffe提供丰富的接口,比如命令行,python,matlab。先说一下命令行命令行 caffe命令及其参数解析,Single、DogCaffe的程序位于caffe / build / tools,运行时可以在根目录执行./build/tools/caffe <command><args>。 其中<command>有四种:train:原创 2016-11-06 14:23:22 · 1135 阅读 · 0 评论 -
caffe学习(4)数据层
数据是学习的原料,参考官网和网友的资料,来看一下数据与数据层。 Data:Ins and Outs Caffe学习系列(2):数据层及参数,denny402数据:输入与输出在Caffe中,数据是以Blobs流动的(见caffe学习(1)caffe模型三种结构)。数据层的输入输出便需要由其他格式与Blobs进行相互转换。一些常见的变换如平均减法(mean-subtraction)、特征缩放原创 2016-11-06 21:10:13 · 1121 阅读 · 0 评论 -
caffe学习(5)视觉层
上一篇是数据层,这一篇是视觉层(Vision Layers)。参考官网和网友博客。 Vision Layers Caffe学习系列(3):视觉层(Vision Layers)及参数,denny402 Caffe源码解析5:Conv_Layer,楼燚航的blog视觉层通常将图像作为输入,产生其他图像作为输出。图像输入可以是灰度图(通道C=1),RGB图(通道C=3)。同样图像也具有二原创 2016-11-06 22:52:38 · 823 阅读 · 0 评论 -
caffe学习(6)激活层
激活(Activation)层又叫神经元(Neuron)层,最主要的是激活函数的设置。 Activation / Neuron Layers Caffe源码解析6:Neuron_Layer,楼燚航的blog一般来说,这一层是元素级的运算符,从底部blob作为输入并产生一个相同大小的顶部blob:输入:n * c * h * w输出:n * c * h * wReLU / Recti原创 2016-11-07 11:22:21 · 1208 阅读 · 0 评论 -
caffe学习(7)损失层、通用层
损失层Loss Layers损失通过将输出与目标进行比较,并不断优化减小loss。Softmax(with loss)层类型:SoftmaxWithLoss示例:layer { name: "loss" type: "SoftmaxWithLoss" bottom: "ip1" bott原创 2016-11-07 16:19:29 · 2489 阅读 · 0 评论 -
Google Protocol Buffer 学习
Caffe上有很多使用了Google Protocol Buffer的东西,从网上来看,这“是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式”。作为caffe模型定义的数据格式,看懂caffe.proto对caffe的理解会有很大帮助。 Google Proto原创 2016-11-07 20:27:37 · 710 阅读 · 0 评论 -
caffe学习(8)Solver 配置详解
Solver是求解学习模型的核心配置文件,网络确定后,solver就决定了学习的效果。本文结合caffe.proto和网上资料,对solver配置进行学习。 Solver Caffe学习系列(7):solver及其配置,denny402Solver在caffe中的定义通常的solver文件与net文件相互关联,同样的net我们往往使用不同的solver尝试得到最好的效果,其运行代码为:c原创 2016-11-08 09:45:41 · 5913 阅读 · 5 评论 -
MMdnn:微软模型转换工具
简介深度学习火了,一同热的还有深度学习框架。当然经过了几年的淘汰(比如theano),目前最火的大概有Tensorflow、PyTorch以及Caffe了。他们各有所长,开发时可能会选定一个单独的平台,但是在应用时就需要考虑其他的因素。重新在其他框架上改代码就变得比较麻烦,如果能把模型直接转换好,更重要的是不同平台效果相同,那就会节省很多时间。MMdnn就是这样的一个模型转换工具,而且是微软出品...原创 2019-06-03 17:13:25 · 4359 阅读 · 4 评论