英文可查:地址

1.SoftmaxWithLoss

对一对多的分类任务计算多项逻辑斯蒂损失,并通过softmax传递预测值,来获得各类的概率分布。该层可以分解为SoftmaxLayer+MultinomialLogisticLossLayer,但它的梯度计算在数值上更为稳健。在测试时,该层可用SoftmaxLayer替代。

前向传播

bottom: 1.(N×C×H×W)维的预测得分x,N是batch数,类别总数为K=CHW,目前看到的SoftmaxWithLossLayer的bottom一般是一个InnerProduct层,所以K是写在一起的。该层将这些得分通过softmax函数(多项logistic回归模型)映射为概率分布,n∈[0, 1, …, N-1],k、k’∈[0, 1, …, K-1]; 
2.(N×1×1×1)维的标签l,,表示这个bacth中各样本的正确标签。 
top:(1×1×1×1)维,对softmax输出类别概率的交叉熵分类损失

反向传播

top:(1×1×1×1)维,该blob的微分就是loss_weight λ,λ是该层输出 的系数,整个网络的损失为 ,这样。 
bottom: 1.(N×C×H×W)维的预测得分x,反向计算微分; 
2.(N×1×1×1)维的标签,忽略。 
另外可参考一篇很好的介绍文章:http://blog.csdn.net/u012162613/article/details/44239919

2.EuclideanLoss

对回归任务计算欧氏距离(L2)损失,可用于最小二乘回归任务。

前向传播

bottom: 1.(N×C×H×W)维的预测, 
2.(N×C×H×W)维的真实结果, 
top:(1×1×1×1)维的欧氏距离损失:

反向传播

top:(1×1×1×1)维,该blob的微分就是loss_weight λ,λ是该层输出 的系数,整个网络的损失为 ,这样。 
bottom: 1.(N×C×H×W)维的预测,反向计算微分; 
2.(N×C×H×W)维的预测,反向计算微分

3.HingeLoss

对一对多的分类任务计算铰链损失。

前向传播

bottom: 1.(N×C×H×W)维的预测t,blob值的范围是,表示对K=CHW中每个类的预测得分。在SVM中,是D维特征和超平面参数的内积,因此只有一个InnerProductLayer(num_output = D)提供预测到HingeLossLayer中的网络就相当于一个SVM; 
2.(N×1×1×1)维的真实标签l,。 
top:(1×1×1×1)维的铰链损失:,对应于正规化,默认是L1正规化,也可以用L2正规化,

反向传播

top:(1×1×1×1)维,该blob的微分就是loss_weight λ,λ是该层输出 的系数,整个网络的损失为 ,这样。 
bottom: 1.(N×C×H×W)维的预测得分t,反向计算微分; 
2.(N×1×1×1)维的标签,忽略。

4.SigmoidCrossEntropyLoss

计算交叉熵(逻辑斯蒂)损失,通常用于以概率形式预测目标。该层可以分解为SigmoidLayer+CrossEntropyLayer,但它的梯度计算在数值上更为稳健。在测试时,该层可用SigmoidLayer替代。

前向传播

bottom: 1.(N×C×H×W)维的预测得分,是用sigmoid函数的概率预测; 
2.(N×C×H×W)维的真实结果,。 
top:(1×1×1×1)维的交叉熵损失:

反向传播

top:(1×1×1×1)维,该blob的微分就是loss_weight λ,λ是该层输出 的系数,整个网络的损失为 ,这样。 
bottom: 1.(N×C×H×W)维的预测得分x,反向计算微分; 
2.(N×1×1×1)维的标签,忽略。

5.MultinomialLogisticLossLayer

对一对多的分类任务计算多项逻辑斯蒂损失,直接将预测的概率分布作为输入。当预测并不是概率分布时应该用SoftmaxWithLossLayer,因为它在计算多项逻辑斯蒂损失前通过SoftmaxLayer将预测映射为分布。

前向传播

bottom: 1.(N×C×H×W)维的预测得分,blob值的范围是[0, 1],表示对K=CHW个类中每个类的预测概率。每个预测向量之和为1,
2.(N×1×1×1)维的标签l,,表示这个bacth中各样本的正确标签。 
top:(1×1×1×1)维的多项逻辑斯蒂损失

反向传播

top:(1×1×1×1)维,该blob的微分就是loss_weight λ,λ是该层输出 的系数,整个网络的损失为 ,这样。 
bottom: 1.(N×C×H×W)维的预测得分,反向计算微分; 
2.(N×1×1×1)维的标签,忽略。

6.InfogainLoss

是MultinomialLogisticLossLayer的泛化,利用“information gain”(infogain)矩阵指定所有标签对的“value“,如果infogain矩阵一致则与MultinomialLogisticLossLayer等价。

前向传播

bottom: 1.(N×C×H×W)维的预测得分,blob值的范围是[0, 1],表示对K=CHW个类中每个类的预测概率。每个预测向量之和为1,
2.(N×1×1×1)维的标签l,,表示这个bacth中各样本的正确标签; 
3.(1×1×K×K)维的infogain矩阵H(相应的另一个为I),若H=I则该层等价于MultinomialLogisticLossLayer。 
top:(1×1×1×1)维的infogain多项逻辑斯蒂损失指的是H的第行。

反向传播

top:(1×1×1×1)维,该blob的微分就是loss_weight λ,λ是该层输出 的系数,整个网络的损失为 ,这样。 
bottom: 1.(N×C×H×W)维的预测得分,反向计算微分; 
2.(N×1×1×1)维的标签,忽略; 
3.(1×1×K×K)维的infogain矩阵,忽略。

7.ContrastiveLoss

计算对比损失,其中,可用于训练siamese网络。

前向传播

bottom: 1.(N×C×1×1)维的特征; 
2.(N×C×1×1)维的特征; 
3.(N×C×1×1)维的二元相似度。 
top:(1×1×K×K)维的对比损失

反向传播

top:(1×1×1×1)维,该blob的微分就是loss_weight λ,λ是该层输出 的系数,整个网络的损失为 ,这样。 
bottom: 1.(N×C×1×1)维的特征a; 
2.(N×C×1×1)维的特征b。

Caffe的loss layer(转)的更多相关文章

  1. 怎样在caffe中添加layer以及caffe中triplet loss layer的实现

    关于triplet loss的原理.目标函数和梯度推导在上一篇博客中已经讲过了.详细见:triplet loss原理以及梯度推导.这篇博文主要是讲caffe下实现triplet loss.编程菜鸟.假 ...

  2. Tutorial: Triplet Loss Layer Design for CNN

    Tutorial:  Triplet Loss Layer Design for CNN Xiao Wang  2016.05.02 Triplet Loss Layer could be a tri ...

  3. caffe 学习(3)——Layer Catalogue

    layer是建模和计算的基本单元. caffe的目录包含各种state-of-the-art model的layers. 为了创建一个caffe model,我们需要定义模型架构在一个protocol ...

  4. Caffe源码-Layer类

    Layer类简介 Layer是caffe中搭建网络的基本单元,caffe代码中包含大量Layer基类派生出来的各种各样的层,各自通过虚函数 Forward() 和 Backward() 实现自己的功能 ...

  5. 在Caffe添加Python layer详细步骤

    本文主要讨论的是在caffe中添加python layer的一般流程,自己设计的test_python_layer.py层只是起到演示作用,没有实际的功能. 1) Python layer 在caff ...

  6. caffe(6) Blob,Layer,Net 以及对应配置文件的编写

    深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成.Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型.它将所有的信息数据定义为blob ...

  7. 【caffe】loss function、cost function和error

    @tags: caffe 机器学习 在机器学习(暂时限定有监督学习)中,常见的算法大都可以划分为两个部分来理解它 一个是它的Hypothesis function,也就是你用一个函数f,来拟合任意一个 ...

  8. caffe调loss方法

    正文 what should I do if... ...my loss diverges? (increases by order of magnitude, goes to inf. or NaN ...

  9. 画caffe训练loss曲线

    Linux下操作 1. 将loss值存储到lossInf.txt中 fName1='loss.txt' cat loss.log | grep "solver.cpp:218] Iterat ...

随机推荐

  1. koa中接收前台传递的各种数据类型的方式

    标签(空格分隔): koa 数据类型接收 主要介绍三种会用到的中间件,其实都是自己在开发的过程中踩过的坑 首先介绍koa-body [详情介绍 https://github.com/dlau/koa- ...

  2. php $_SERVER['HTTP_USER_AGENT']

    //获取浏览器 function getBrowse() { global $_SERVER; $Agent = $_SERVER['HTTP_USER_AGENT']; $browseinfo='' ...

  3. ERROR 1698 (28000): Access denied for user 'root'@'localhost' 解决方法

    之前MySQL服务端本机上使用密码登陆root账号是没有问题的,但是今天不知道是因为动了哪里,登陆失败并有这个错误代码: ~$ mysql -u root -p Enter password: ERR ...

  4. Qt宏Q_OBJECT展开记录

    c++中的宏 #define A 3.14 展开后把A替换为B #define A(a) #a 展开后用a的字符串替换A(a) #define A(a) a##B 展开后把a和B的字符串连接起来后替换 ...

  5. 2013南京网赛1003 hdu 4750 Count The Pairs

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4750 题意:给出一个无向图,f(a,b)表示从点a到点b的所有路径中的每条路径的最长边中的最小值,给出 ...

  6. java 数字转中文

    java代码 数字转中文,该方法只做了对int型整数的转换 private static String numberToChinese(int number) { String[] numbers = ...

  7. 【uoj#280】[UTR #2]题目难度提升 对顶堆+STL-set

    题目描述 给出 $n$ 个数 $a_1,a_2,...,a_n$ ,将其排为序列 $\{p_i\}$ ,满足 $\{前\ i\ 个数的中位数\}$ 单调不降.求字典序最大的 $\{p_i\}$ . 其 ...

  8. 【刷题】BZOJ 3669 [Noi2014]魔法森林

    Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...

  9. 【uoj219】 NOI2016—优秀的拆分

    http://uoj.ac/problem/219 (题目链接) 题意 一个字符串求它有多少个形如AABB的子串. Solution 其实跟后缀数组里面一个论文题poj3693处理方式差不多吧. 先处 ...

  10. 解决Android SDK Manager更新时出现问题

    使用SDK Manager更新时出现问题Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-6.xm ...