前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >caffe详解之卷积层

caffe详解之卷积层

作者头像
AI异构
发布于 2020-07-29 02:58:57
发布于 2020-07-29 02:58:57
63700
代码可运行
举报
文章被收录于专栏:AI异构AI异构
运行总次数:0
代码可运行

从零开始,一步一步学习caffe的使用,期间贯穿深度学习和调参的相关知识!

卷积层参数说明

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param {
    lr_mult: 1  #lr_mult: 学习率的系数,最终的学习率是这个数乘以solver.prototxt配置文件中的base_lr。如果有两个lr_mult, 则第一个表示权值的学习率,第二个表示偏置项的学习率。一般偏置项的学习率是权值学习率的两倍。
  }
  param {
    lr_mult: 2  #偏置项的学习率
  }
  convolution_param {
    num_output: 20 #卷积核(filter)的个数
    kernel_size: 5 #卷积核的大小
    stride: 1 #卷积核的步长,默认为1
    pad: 0 #扩充边缘,默认为0,不扩充
    group: 2 #默认为0(通达卷积的实现方式)
    weight_filler {
      type: "xavier" #权值初始化。 默认为“constant",值全为0,很多时候我们用"xavier"算法来进行初始化,也可以设置为”gaussian"
    }
    bias_filler {
      type: "constant" #偏置项的初始化。一般设置为"constant",值全为0
    }
  }
}

卷积配置参数意义

卷积计算公式
卷积计算过程图示

上图取自CS231n,展示了三维卷积的计算过程,输入数据的三个维度,对应第二个卷积核生成了第二个Feature Map

Feature Map大小计算

如上图所示,输出Feature Map大小计算公式如下:

权值与偏置的初始化方法

caffe源文件filler.hpp中提供了7种权值初始化的方法。计算机视觉的领域中权重参数的初始化常用xavier,偏置的初始化常用constant,并且初始化为0

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Filler<Dtype>* GetFiller(const FillerParameter& param) {
  const std::string& type = param.type();
  if (type == "constant") {
    return new ConstantFiller<Dtype>(param);
  } else if (type == "gaussian") {
    return new GaussianFiller<Dtype>(param);
  } else if (type == "positive_unitball") {
    return new PositiveUnitballFiller<Dtype>(param);
  } else if (type == "uniform") {
    return new UniformFiller<Dtype>(param);
  } else if (type == "xavier") {
    return new XavierFiller<Dtype>(param);
  } else if (type == "msra") {
    return new MSRAFiller<Dtype>(param);
  } else if (type == "bilinear") {
    return new BilinearFiller<Dtype>(param);
  } else {
    CHECK(false) << "Unknown filler name: " << param.type();
  }
  return (Filler<Dtype>*)(NULL);
}

结合 .prototxt 文件中的 FillerParameter来看看怎么用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
message FillerParameter {
  // The filler type.
  optional string type = 1 [default = 'constant'];
  optional float value = 2 [default = 0]; // the value in constant filler
  optional float min = 3 [default = 0]; // the min value in uniform filler
  optional float max = 4 [default = 1]; // the max value in uniform filler
  optional float mean = 5 [default = 0]; // the mean value in Gaussian filler
  optional float std = 6 [default = 1]; // the std value in Gaussian filler
  // The expected number of non-zero output weights for a given input in
  // Gaussian filler -- the default -1 means don't perform sparsification.
  optional int32 sparse = 7 [default = -1];
  // Normalize the filler variance by fan_in, fan_out, or their average.
  // Applies to 'xavier' and 'msra' fillers.
  enum VarianceNorm {
    FAN_IN = 0;
    FAN_OUT = 1;
    AVERAGE = 2;
  }
  optional VarianceNorm variance_norm = 8 [default = FAN_IN];
}
constant初始化
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
optional string type = 1 [default = 'constant'];
optional float value = 2 [default = 0]; // the value in constant filler

caffe中默认的初始化方式,它就是把权值或着偏置初始化为一个常数,具体是什么常数,自己可以定义。它的值等于上面的.prototxt文件中的 value的值,默认为0

xavier初始化
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  // Normalize the filler variance by fan_in, fan_out, or their average.
  // Applies to 'xavier' and 'msra' fillers.
  enum VarianceNorm {
    FAN_IN = 0;
    FAN_OUT = 1;
    AVERAGE = 2;
  }
  optional VarianceNorm variance_norm = 8 [default = FAN_IN];

xavier是和relu完美配合的初始化。xavier诞生时并没有用relu做例子,但是实际效果中xavier还是和relu很搭配的。

xavier初始化定义为:定义参数所在层的输入维度为n,输出维度为m,那么参数将以均匀分布的方式在

的范围内进行初始化。具体的原理可以参靠 CNN数值——xavier (https://zhuanlan.zhihu.com/p/22028079) 它的思想就是让一个神经元的输入权重的(当反向传播时,就变为输出了)的方差等于:1 / 输入的个数;这样做的目的就是可以让信息可以在网络中均匀的分布一下。 对于权值的分布:是一个让均值为0,方差为 1 / 输入的个数 的均匀分布。 如果我们更注重前向传播的话,我们可以选择 fan_in,即正向传播的输入个数;如果更注重后向传播的话,我们选择 fan_out, 因为,等着反向传播的时候,fan_out就是神经元的输入个数;如果两者都考虑的话,那就选 average = (fan_in + fan_out) /2

参考

caffe中权值初始化方法 CNN数值——xavier

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI异构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Protel99SE快捷键大全
protel99se快捷键 enter——选取或启动 esc——放弃或取消 f1——启动在线帮助窗口 tab——启动浮动图件的属性窗口 pgup——放大窗口显示比例 pgdn——缩小窗口显示比例 end——刷新屏幕 del——删除点取的元件(1个) ctrl+del——删除选取的元件(2个或2个以上) x+a——取消所有被选取图件的选取状态 x——将浮动图件左右翻转 y——将浮动图件上下翻转 space——将浮动图件旋转90度 crtl+ins——将选取图件复制到编辑区里 shift+ins——将剪贴板里的图件贴到编辑区里 shift+del——将选取图件剪切放入剪贴板里 alt+backspace——恢复前一次的操作 ctrl+backspace——取消前一次的恢复 crtl+g——跳转到指定的位置 crtl+f——寻找指定的文字 alt+f4——关闭prote spacebar——绘制导线,直线或总线时,改变走线模式 v+d——缩放视图,以显示整张电路图 v+f——缩放视图,以显示所有电路部件 home——以光标位置为中心,刷新屏幕 esc——终止当前正在进行的操作,返回待命状态 backspace——放置导线或多边形时,删除最末一个顶点 delete——放置导线或多边形时,删除最末一个顶点 ctrl+tab——在打开的各个设计文件文档之间切换 alt+tab——在打开的各个应用程序之间切换 a——弹出edit\align子菜单 b——弹出view\toolbars子菜单 e——弹出edit菜单 f——弹出file菜单 h——弹出help菜单 j——弹出edit\jump菜单 l——弹出edit\set location makers子菜单 m——弹出edit\move子菜单 o——弹出options菜单 p——弹出place菜单 r——弹出reports菜单 s——弹出edit\select子菜单 t——弹出tools菜单 v——弹出view菜单 w——弹出window菜单 x——弹出edit\deselect菜单 z——弹出zoom菜单 左箭头——光标左移1个电气栅格 shift+左箭头——光标左移10个电气栅格 右箭头——光标右移1个电气栅格 shift+右箭头——光标右移10个电气栅格 上箭头——光标上移1个电气栅格 shift+上箭头——光标上移10个电气栅格 下箭头——光标下移1个电气栅格 shift+下箭头——光标下移10个电气栅格 ctrl+1——以零件原来的尺寸的大小显示图纸 ctrl+2——以零件原来的尺寸的200%显示图纸 ctrl+4——以零件原来的尺寸的400%显示图纸 ctrl+5——以零件原来的尺寸的50%显示图纸 ctrl+f——查找指定字符 ctrl+g——查找替换字符 ctrl+b——将选定对象以下边缘为基准,底部对齐 ctrl+t——将选定对象以上边缘为基准,顶部对齐 ctrl+l——将选定对象以左边缘为基准,靠左对齐 ctrl+r——将选定对象以右边缘为基准,靠右对齐 ctrl+h——将选定对象以左右边缘的中心线为基准,水平居中排列 ctrl+v——将选定对象以上下边缘的中心线为基准,垂直居中排列 ctrl+shift+h——将选定对象在左右边缘之间,水平均布 ctrl+shift+v——将选定对象在上下边缘之间,垂直均布 f3——查找下一个匹配字符 shift+f4——将打开的所有文档窗口平铺显示 shift+f5——将打开的所有文档窗口层叠显示 shift+单左鼠——选定单个对象 crtl+单左鼠,再释放crtl——拖动单个对象 shift+ctrl+左鼠——移动单个对象 按ctrl后移动或拖动——移动对象时,不受电器格点限制 按alt后移动或拖动——移动对象时,保持垂直方向 按shift+alt后移动或拖动——移动对象时,保持水平方向 * 顶层与底层之间层的切换 + (-) 逐层切换:“+”与“-”的方向相反 Q mm(毫米)与mil(密尔)的单位切换 IM 测量两点间的距离 ◎edafans 版权所有,拒绝转载◎exdjavKNu5 E x 编辑X ,X为编辑目标,代号如下:(A)=圆弧;(C)=元件;(F)=填充;(P)=焊盘;(N)=网络;(S)=字符;(T)=导线;(V)=过孔;(I)=连接线;(G)=填充多边形。例如要编辑元件时按E C,鼠标指针出现“十”字,单击要编辑的元件即可进行编辑。 P x 放置 X,X为放置目标,代号同上。 M x 移动X,X为移动目标,(A)、(C)、(F)、(P)、(S)、(T)、(V)、(G)同上,另外( I )=翻转选择部份;(O)旋转选择部份;(M)=移动选择
全栈程序员站长
2022/09/02
1.9K0
Altium Designer 入门教程
我本身是硬件出身的,最开始接触的是protel 99SE,非常轻量,用来画一些简单的电路图作为入门是可以的,之后做比赛接触到了Altium Designer(以下简称 AD),其实 AD 对于我们现阶段的使用其实是够用了,网上很多人说Candence很厉害,包括我身边以前实验室的朋友都夸它好,有人夸说明肯定又优势,但是都是一门工具,要我说,武功再好,也怕菜刀,工具趁手,就是好工具。
全栈程序员站长
2022/09/14
1.9K0
Altium Designer 入门教程
最全的windows操作系统快捷键
一、常见用法:  F1           显示当前程序或者windows的帮助内容。  F2 运维
Java架构师必看
2021/03/22
2.2K0
Eclipse快捷键最有用的快捷键
Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。     1. ctrl+shift+r:打开资源     这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。 2. ctrl+o:快速outline    
Java学习123
2018/05/16
1.9K0
Visual Studio Code window环境下快捷键大全
最近大量使用Visual Studio Code,因为它简直就是神器。相较于其他各种代码阅读器,文本编辑器等等。它要强大太多。
zinyan.com
2023/02/28
1.3K0
Visual Studio Code window环境下快捷键大全
电脑技巧:分享常用的电脑快捷键,赶快收藏吧!
今天给大家分享常用的电脑快捷键,赶快来收藏吧! 1、最常用快捷键 Ctrl + X:剪切。 Ctrl + V:粘贴。 Ctrl + Z:撤销。 Ctrl + A:选中全部内容。 DELETE:删除。 F2:重新命名所选项目。 F3:搜索文件或文件夹。 F5:刷新当前窗口。 Alt + F4:关闭当前项目或者退出当前程序。 Alt + Tab:在打开的项目之间切换。 Prt Scr Sysrq:截屏键 Shift + Delete:永久删除所选项,而不将它放到“回收站”中。 拖动某一项时按 CTRL:复制
小明互联网技术分享社区
2023/01/08
1.2K0
电脑技巧:分享常用的电脑快捷键,赶快收藏吧!
Eclipse快捷键设置
Alt+Shift+↑ 选择封装元素 Alt+Shift+← 选择上一个元素 Alt+Shift+→ 选择下一个元素 Shift+← 从光标处开始往左选择字符 Shift+→ 从光标处开始往右选择字符 Ctrl+Shift+← 选中光标左边的单词 Ctrl+Shift+→ 选中光标又边的单词
再见孙悟空_
2023/02/10
5600
常用快捷键大全
F1 帮助 F2 改名 F3 搜索 F4 地址 F5 刷新 F6 切换 F8 安全模式 F10 菜单 F11 全屏 INS 插入模式 PRTSCSYSRQ 截屏 CAPSLOCK 大写字母锁定 DELETE 删除 ESC 退出 HOME 到开始或主程序 END 到结尾 PAGEUP 向上翻页 PAGEDOWN 向下翻页 TAB 改变焦点
张果
2022/05/09
4.9K0
常用快捷键大全
Eclipse快捷键大全
----------------------------------------------------------------------------- Eclipse快捷键大全(转载)
黑泽君
2018/10/11
6950
ubuntu快捷键设置大全 [转]
转自:http://xiongyongyuan1234.blog.163.com/blog/static/5566116820103845725657/
forrestlin
2022/04/02
2.2K0
Source Insight快捷键大全
向上滚动半屏 : Ctrl+PgDn, Ctrl+(KeyPad) PgDn, (KeyPad) *
乱码三千
2021/07/29
8410
电脑快捷键
Ctrl+S 保存 Ctrl+W 关闭程序 Ctrl+N 新建 Ctrl+O 打开 Ctrl+Z 撤销 Ctrl+F 查找 Ctrl+X 剪切 Ctrl+C 复制 Ctrl+V 粘贴 Ctrl+A 全选 Ctrl+[ 缩小文字 Ctrl+] 放大文字 Ctrl+B 粗体 Ctrl+I 斜体 Ctrl+U 下划线 Ctrl+Shift 输入法切换 Ctrl+空格 中英文切换 Ctrl+回车 QQ号中发送信息 Ctrl+Home 光标快速移到文件头 Ctrl+End 光标快速移到文件尾 Ctrl+Esc 显示开始菜单 Ctrl+Shift+< 快速缩小文字 Ctrl+Shift+> 快速放大文字 Ctrl+F5 在IE中强行刷新 Ctrl+拖动文件 复制文件 Ctrl+Backspace 启动关闭输入法 拖动文件时按住Ctrl+Shift 创建快捷方式 Alt+空格+C 关闭窗口 Alt+空格+N 最小化当前窗口 Alt+空格+R 恢复最小化窗口 Alt+空格+X 最大化当前窗口 Alt+空格+M 移动窗口 Alt+空格+S 改变窗口大小 Alt+Tab 两个程序交换 Alt+255 QQ号中输入无名人 Alt+F 打开文件菜单 Alt+V 打开视图菜单 Alt+E 打开编辑菜单 Alt+I 打开插入菜单 Alt+O 打开格式菜单 Alt+T 打开工具菜单 Alt+A 打开表格菜单 Alt+W 打开窗口菜单 Alt+H 打开帮助菜单 Alt+回车 查看文件属性 Alt+双击文件 查看文件属性 Alt+X 关闭C语言 Shift快捷键 Shift+空格 半全角切换 Shift + Delete 永久删除所选项,而不将它放到“回收站”中。 拖动某一项时按 CTRL 复制所选项 拖动某一项时按 CTRL + SHIFT 创建所选项目的快捷键
似水的流年
2023/02/02
1.3K0
浏览器快捷键大全
标签页和窗口快捷键 快捷键 说明 Ctrl + n 打开新窗口。 Ctrl + shift + n 在隐身模式下打开新窗口。 Ctrl + t 打开新的标签页。(常用) Ctrl + Shift + t 重新打开最后关闭的标签页。 Ctrl + Tab 或 Ctrl + Pgdn 跳转到下一个打开的标签页,如果当前为最后一个标签页,则跳转到第一个标签页。 Ctrl + Shift + Tab 或 Ctrl + Pgup 跳转到上一个打开的标签页。(常用) Alt + ←
十玖八柒
2022/08/01
1.4K0
Visual Studio Code 常用的快捷键
自从我开始使用 VSCode 编辑器以来,逐渐积累了一系列高效实用的快捷键集合。这其中,部分快捷键是源自 Windows 系统内置的通用功能,有一些是 VSCode 专属的。然而,无论是系统内置还是编辑器专享,这些易学易用的快捷键无疑都能显著提升开发者编写程序时的工作效率!
写bug的高哈哈
2024/11/03
4191
Visual Studio Code 常用的快捷键
Eclipse快捷键大全
Eclipse快捷键大全 Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行  Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交互位置(同上) Alt+← 前一个编辑的页面 Alt+→ 下一个编辑的页面(当然是针对上面那条来说了) Alt+Enter 显示当前选择资源(工程,or 文件 or文
10JQKA
2018/05/09
9590
Chrome 键盘快捷键 转
了解各种键盘快捷键,成为 Chrome 使用达人。 Windows 和 Linux 标签页和窗口快捷键 操作 快捷键 打开新窗口 Ctrl + n 在无痕模式下打开新窗口 Ctrl + Shift + n 打开新的标签页,并跳转到该标签页 Ctrl + t 重新打开最后关闭的标签页,并跳转到该标签页 Ctrl + Shift + t 跳转到下一个打开的标签页 Ctrl + Tab 或 Ctrl + PgDn 跳转到上一个打开的标签页 Ctrl + Shift + Tab 或 Ctrl + PgUp 跳转
wuweixiang
2018/08/14
1.6K0
win10快捷键大全 win10常用快捷键
win10快捷键大全大家可以来了解一下,今天小编带来了win10常用快捷键,很多朋友喜欢使用快捷键来操作电脑,那么Windows10系统有哪些新的快捷键呢 win10快捷键大全大家可以来了解一下,今天小编带来了win10常用快捷键,很多朋友喜欢使用快捷键来操作电脑,那么Windows10系统有哪些新的快捷键呢 • 贴靠窗口:Win +左/右> Win +上/下>窗口可以变为1/4大小放置在屏幕4个角落 • 切换窗口:Alt + Tab(不是新的,但任务切换界面改进) • 任务视图:Win + Tab(松开
98k
2018/04/12
4.8K0
windows10切换快捷键_Word快捷键大全
今天与大家分享一下最全的Windows10键盘快捷键汇总,包括:Windows10系统快捷键、Windows10内置应用快捷键、Windows10辅助功能快捷键、Microsoft Surface Hub快捷键、Win10手机Continuum模式快捷键,并且本文会随着Win10版本的更新和新快捷键的增加而持续更新。
全栈程序员站长
2022/11/10
6.1K0
最全电脑快捷键
1.很多时候,需要暂时离开座位去做别的事情,如果对自己的电脑安全很重视,不妨按住windows键后,再按L键,这样电脑就直接锁屏了,这样就不用担心电脑的资料外泄啦
勤奋的思远
2021/02/12
1.5K0
最全电脑快捷键
2020版PS快捷键_ps应用快捷键大全
说明:为避免篇幅过大,本文快捷键是基于Windows系统下Photoshop 2020版本的。Mac系统下的快捷键可按以下方式进行对应:Ctrl→Command,Alt→Option。有不能对应的,本文会给出说明。部分项目附加英文是为了方便记忆快捷键。
全栈程序员站长
2022/11/11
1.7K0
2020版PS快捷键_ps应用快捷键大全
相关推荐
Protel99SE快捷键大全
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档