caffe源码 卷积层
通俗易懂理解卷积
- 图示理解神经网络的卷积
- input: 3 * 5 * 5 (c * h * w)
- pading: 1
- 步长: 2
- 卷积核: 2 * 3 * 3 * 3 ( n * c * k * k )
- output: 2 * 3 * 3 ( c * h * w )
如下图所示: 
深入理解卷积
- 首先需要理解caffe里面的im2col和col2im
- 然后 卷积层 其实和 全连接层 差不多了
理解im2col
- 图示理解im2col
- input: 3 * 4 * 4 ( c * h * w )
- 卷积核: 3 * 3 * 3 ( c * h * w )
- output: ( 3 * 3 * ) * ( 2 * 2 ) ( h * w )
如下图所示:
卷积层的实现
im2col转换前
- input: 1 * c * h * w
- 卷积核: m * c * k * k
- m 个卷积核
- 步长: stride
- 填充: pad
- 扩展: dilation
- output: 1 * m * H * W
- H = ( h + 2 * pad - dilation * ( k - 1 ) ) / stride + 1
- W = ( w + 2 * pad - dilation * ( k - 1 ) ) / stride + 1
im2col转换后
input: 1 * ( c * k * k ) * ( H * W )
weight: m * (c * k * k) *** bias:** m * 1
output: 1 * m * H * W
则公式(即前向传播)为:output = input * weight + bias * 全1矩阵 ( 1 * H * W )
反向传播和全连接层一样(详细参考全连接层的推导):
- 梯度传递:bottom_diff = top_diff * weight
- 对w求导:weight_diff = top_diff * bottom + weight_diff(累积梯度)
- 对b求导:bias_diff = top_diff + bias_diff(累积梯度)
caffe源码 卷积层的更多相关文章
- Caffe源码阅读(1) 全连接层
Caffe源码阅读(1) 全连接层 发表于 2014-09-15 | 今天看全连接层的实现.主要看的是https://github.com/BVLC/caffe/blob/master/src ...
- caffe源码阅读
参考网址:https://www.cnblogs.com/louyihang-loves-baiyan/p/5149628.html 1.caffe代码层次熟悉blob,layer,net,solve ...
- caffe源码学习
本文转载自:https://buptldy.github.io/2016/10/09/2016-10-09-Caffe_Code/ Caffe简介 Caffe作为一个优秀的深度学习框架网上已经有很多内 ...
- Caffe源码中caffe.proto文件分析
Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下caffe.proto文件. 在src/caffe/proto目录下有一个 ...
- caffe源码整个训练过程
Caffe源码 Blob protected: shared_ptr<SyncedMemory> data_; shared_ptr<SyncedMemory> diff_; ...
- caffe源码学习之Proto数据格式【1】
前言: 由于业务需要,接触caffe已经有接近半年,一直忙着阅读各种论文,重现大大小小的模型. 期间也总结过一些caffe源码学习笔记,断断续续,这次打算系统的记录一下caffe源码学习笔记,巩固一下 ...
- Caffe源码理解2:SyncedMemory CPU和GPU间的数据同步
目录 写在前面 成员变量的含义及作用 构造与析构 内存同步管理 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 在Caffe源码理解1中介绍了Blob类,其中的数据成 ...
- Caffe源码中syncedmem文件分析
Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下syncedmem文件. 1. include文件: (1).& ...
- Caffe源码中math_functions文件分析
Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下math_functions文件. 1. include文件: ...
随机推荐
- [WPF]使用WindowChrome自定义Window Style
1. 前言 做了WPF开发多年,一直未曾自己实现一个自定义Window Style,无论是<WPF编程宝典>或是各种博客都建议使用WindowStyle="None" ...
- chrome开发工具指南(十)
检查和删除 Cookie 从 Application 面板检查和删除 Cookie. TL;DR 查看与 Cookie 有关的详细信息,例如名称.值.网域和大小,等等. 删除单个 Cookie.选定网 ...
- C# 导出Excel的示例(转)
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...
- 转:【Java并发编程】之十九:并发新特性—Executor框架与线程池(含代码)
Executor框架简介 在Java5之后,并发编程引入了一堆新的启动.调度和管理线程的API.Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在java.util.coc ...
- 第二次作业:编写一个四则运算的"软件"
- 题目: 请编写一个能自动生成小学四则运算题目的 “软件”. 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. 需求分析: ●基本功能 ●实现100以内的加法 ●实现100以内 ...
- 201521123082 《Java程序设计》第9周学习总结
201521123082 <Java程序设计>第9周学习总结 标签(空格分隔):java 1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 ...
- GUI(GroupLayout 分组布局)
组:一些组件的集合 连续组:一个接着一个摆放 并行组:一个组在另一个组的顶部 ...
- IT之光
作为一个IT界的新新人才,现在拥有第一个博客,可以在这里学习和分享IT方面的知识和技术.
- 团队作业4——第一次项目冲刺(ALpha版本)第三天
一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 1.界面 完成了前端的HTML页面设计 2.功能 完成了后端数据处理的全部基本功能: 数据结构设计及数据交互操作 博客页面数据 ...
- 201521123109《java程序设计》第四周学习总结
1. 本周学习总结 #1.1 尝试使用思维导图总结有关继承的知识点. #1.2 使用常规方法总结其他上课内容. - 了解了有关类的继承的知识 - 了解继承和多态的关系以及一些关键字内容 - 学习了O ...