图示全连接层

  • 如上图所示,该全链接层输入n * 4,输出为n * 2,n为batch
  • 该层有两个参数W和B,W为系数,B为偏置项
  • 该层的函数为F(x) = W*x + B,则W为4 * 2的矩阵,B 为 1 * 2 的矩阵

从公式理解全连接层

假设第N层为全连接层,输入为Xn,输出为Xn+1,其他与该层无关的信息可以忽略

  • 该层公式有Xn+1 = Fn(Xn) = W * Xn + B

前向传播

  • 已知Xn,Xn+1 = W * Xn + B, 为前向传播

反向传播

反响传播这里需要求两个梯度,loss 对 W的梯度 和 loss 对 B 的梯度,

  • loss 对 W 的梯度

    • 具体公式如下:
  • loss 对 B 的梯度
    • 具体公式如下:
  • 上面两个梯度都用到了loss 对 该层输出的梯度,所以在这层应该把loss 对该层输入的梯度传递到上一层。
    • 具体公式如下:

caffe中innerproduct的代码

前向传播

这一步在代码里面分为两步:

  • Xn+1 = W * Xn,如下图:

  • Xn+1 = Xn+1 + B,如下图:
  • 和上面推导的一样

反向传播

这里需要求三个梯度,loss 对 W的梯度 ,loss 对 B的梯度, loss 对 Xn的梯度

  • loss 对 W 的梯度

    • 公式:
    • 代码: 
    • 以上公式和推导的公式有点区别,后面加多loss 对W 的梯度,实现的是累积梯度
  • loss 对 B 的梯度
    • 公式:
    • 代码:
    • 以上公式和推导的公式有点区别,后面加多loss 对B 的梯度,实现的是累积梯度
  • loss 对 Xn 的梯度,:
    • 公式: 
    • 代码:
    • 公式和推导的并无区别

caffe源码 全连接层的更多相关文章

  1. caffe之(四)全连接层

    在caffe中,网络的结构由prototxt文件中给出,由一些列的Layer(层)组成,常用的层如:数据加载层.卷积操作层.pooling层.非线性变换层.内积运算层.归一化层.损失计算层等:本篇主要 ...

  2. caffe怎么把全连接层转成convolutional层

    caffe中有把fc层转化为conv层的,其实怎么看参数都是不变的,对alex模型来说,第一个fc层的参数是4096X9216,而conv的维度是4096x256x6x6,因此参数个数是不变的,只是需 ...

  3. caffe源码 池化层 反向传播

    图示池化层(前向传播) 池化层其实和卷积层有点相似,有个类似卷积核的窗口按照固定的步长在移动,每个窗口做一定的操作,按照这个操作的类型可以分为两种池化层: 输入参数如下: 输入: 1 * 3 * 4 ...

  4. Caffe源码阅读(1) 全连接层

    Caffe源码阅读(1) 全连接层 发表于 2014-09-15   |   今天看全连接层的实现.主要看的是https://github.com/BVLC/caffe/blob/master/src ...

  5. caffe源码 卷积层

    通俗易懂理解卷积 图示理解神经网络的卷积 input: 3 * 5 * 5 (c * h * w) pading: 1 步长: 2 卷积核: 2 * 3 * 3 * 3 ( n * c * k * k ...

  6. caffe中全卷积层和全连接层训练参数如何确定

    今天来仔细讲一下卷基层和全连接层训练参数个数如何确定的问题.我们以Mnist为例,首先贴出网络配置文件: name: "LeNet" layer { name: "mni ...

  7. caffe源码阅读

    参考网址:https://www.cnblogs.com/louyihang-loves-baiyan/p/5149628.html 1.caffe代码层次熟悉blob,layer,net,solve ...

  8. caffe源码学习

    本文转载自:https://buptldy.github.io/2016/10/09/2016-10-09-Caffe_Code/ Caffe简介 Caffe作为一个优秀的深度学习框架网上已经有很多内 ...

  9. Caffe源码中caffe.proto文件分析

    Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下caffe.proto文件. 在src/caffe/proto目录下有一个 ...

随机推荐

  1. 广度优先遍历&深度优先遍历

    一.广度优先算法BFS(Breadth First Search) 基本实现思想 (1)顶点v入队列. (2)当队列非空时则继续执行,否则算法结束. (3)出队列取得队头顶点v: (4)查找顶点v的所 ...

  2. one-wallhaven 一个壁纸程序

    one-wallhaven 一款基于 Electron 壁纸客户端 . gitee:https://gitee.com/ml13/wallhaven-electron github:https://g ...

  3. 压缩css与js

    使用yuicompressor 进行css和js的压缩 #! /bin/sh yasuocss="java -jar /root/yuicompressor-2.4.8.jar --type ...

  4. Spring之事务源码

    对@Transactional注解的类进行动态代理 同前文<Spring AOP源码分析>中分析动态代理入口一样,都是在initializeBean时执行. Object exposedO ...

  5. Elementary OS安装及开发环境配置(一)

    前言 假期在家无聊,刚好把六年前的一台笔记本电脑利用起来,原来电脑虽然说配置说不上古董机器,但是运行win系统感觉还是不流畅,所幸给换成Linux桌面版系统,在网上查阅了很多,Linux桌面系统要么推 ...

  6. Shodan搜索引擎详解及Python命令行调用

    shodan常用信息搜索命令 shodan配置命令 shodan init T1N3uP0Lyeq5w0wxxxxxxxxxxxxxxx //API设置 shodan信息收集 shodan myip ...

  7. FLstudio 系列教程(七):FL Studio五大常用按钮介绍

    我们打开FL Studio编曲软件会发现界面中有好多的菜单和窗口,这些窗口每个都有其单独的功能.今天小编主要给大家详细讲解下FL Studio水果软件的五大常用按钮. 1.首先我,我们双击桌面的水果图 ...

  8. 给git日志添加好看的样式

    windows添加如下命令,让入了全局环境里 git config --global alias.lg "log --color --graph --pretty=format:'%Cred ...

  9. 3. git命令行操作之远程库操作

    3.1 基本操作 注册GitHub账号 在本地创建一个本地库并初始化 登录到gitHub创建一个远程库 注意:windows的凭据管理器中会保存github登录信息.如果要切换登录者,先删除相应凭据 ...

  10. MarkDown使用之LaTeX表示数学公式

    对于文本排版格式,对于\(Microsoft\,Word\)来说,功能尽全,可调的参数十分多,人们可能会将不少的时间放在具体的文字大小.实现样式.而\(markdown\)语法能够让人们通过符号去替代 ...