【转载】 【caffe转向pytorch】caffe的BN层+scale层=pytorch的BN层
原文地址:
https://blog.csdn.net/u011668104/article/details/81532592
---------------------------------------------------------------------------------------
caffe里面用BN层的时候通常后面接一下scale层,原因如下:
caffe 中为什么bn层要和scale层一起使用
这个问题首先你要理解batchnormal是做什么的。它其实做了两件事。
1)输入归一化 x_norm = (x-u)/std, 其中u和std是个累计计算的均值和方差。
2)y=alpha×x_norm + beta,对归一化后的x进行比例缩放和位移。其中alpha和beta是通过迭代学习的。
那么caffe中的bn层其实只做了第一件事。scale层做了第二件事。
这样你也就理解了scale层里为什么要设置bias_term=True,这个偏置就对应2)件事里的beta。
而在pytorch中,我们可以看一下代码注释说明

其中红框这部分,我们可以看一下这个公式是

本身同时完成两件事情。
因此,caffe的BN层+scale层 与 pytorch的BN层 等价
---------------------------------------------------------------------------------------------
【转载】 【caffe转向pytorch】caffe的BN层+scale层=pytorch的BN层的更多相关文章
- 【Caffe篇】--Caffe从入门到初始及各层介绍
		
一.前述 Caffe,全称Convolutional Architecture for Fast Feature Embedding.是一种常用的深度学习框架,主要应用在视频.图像处理方面的应用上.c ...
 - 【撸码caffe 三】 caffe.cpp
		
caffe.cpp文件完成对网络模型以及模型配置参数的读入和提取,提供了网络模型训练的入口函数train和对模型的测试入口函数test.文件中使用了很多gflags和glog指令,gflags是goo ...
 - 未定义变量 "caffe" 或类 "caffe.reset_all"
		
配置caffe后在matlab中测试报错. 未定义变量 "caffe" 或类 "caffe.reset_all". 我的原因是:caffe在matlab接口处没 ...
 - Intel Caffe 与原生Caffe
		
1. 首先安装好docker,拉取intel caffe image: $ docker pull bvlc/caffe:intel 试着运行: $ docker run -it bvlc/caff ...
 - 【caffe Blob】caffe中与Blob相关的代码注释、使用举例
		
首先,Blob使用的小例子(通过运行结果即可知道相关功能): #include <vector> #include <caffe/blob.hpp> #include < ...
 - Pytorch学习之源码理解:pytorch/examples/mnists
		
Pytorch学习之源码理解:pytorch/examples/mnists from __future__ import print_function import argparse import ...
 - 【小白学PyTorch】11 MobileNet详解及PyTorch实现
		
文章来自微信公众号[机器学习炼丹术].我是炼丹兄,欢迎加我微信好友交流学习:cyx645016617. @ 目录 1 背景 2 深度可分离卷积 2.2 一般卷积计算量 2.2 深度可分离卷积计算量 2 ...
 - [PyTorch入门]之从示例中学习PyTorch
		
Learning PyTorch with examples 来自这里. 本教程通过自包含的示例来介绍PyTorch的基本概念. PyTorch的核心是两个主要功能: 可在GPU上运行的,类似于num ...
 - 【小白学PyTorch】12 SENet详解及PyTorch实现
		
文章来自微信公众号[机器学习炼丹术].我是炼丹兄,有什么问题都可以来找我交流,近期建立了微信交流群,也在朋友圈抽奖赠书十多本了.我的微信是cyx645016617,欢迎各位朋友. 参考目录: @ 目录 ...
 
随机推荐
- svn中的ignore
			
首先,svn GUI菜单右键的ignore功能,写的模模糊糊,网上也没啥人给出清晰的解释,stackoverflow推荐用命令行控制 SVN有3中方法配置ignore 1.配置文件 C:\Users\ ...
 - vue组件通信&&v兄弟组件通信eventbus遇到的问题(多次触发、第一次不触发)
			
组件通讯包括:父子组件间的通信和兄弟组件间的通信.在组件化系统构建中,组件间通信必不可少的 (vuex以后再说). 父组件--> 子组件 1. 属性设置 父组件关键代码如下: <templ ...
 - Microsoft SQL Server Trace Flags
			
Complete list of Microsoft SQL Server trace flags (585 trace flags) REMEMBER: Be extremely careful w ...
 - Oracle12c中容错&性能新特性之表空间组
			
1. 简介 表空间组可以使用户消耗来自多个表空间的临时表空间.表空间组有如下特点: 1) 至少包含一个表空间.表空间组中包含的最大表空间数没有限制. 2) 和表空间共 ...
 - ActiveMQ producer 提交事务时突然宕机,会发生什么
			
producer 在提交事务时,发生宕机,commit 的命令没有发送到 broker,这时会发生什么? ActiveMQ 开启事务发送消息的步骤: session.getTransactionCon ...
 - InnoDB支持的最大事务数量
			
Innodb存储引擎有rollback segment,每个rollback segment中记录了1024个undo log segment,在每个undo log segment中进行undo页的 ...
 - JavaScript中  null 的 typeof是object
			
JavaScript中 null 的 typeof是object
 - date命令说明
			
基本使用格式: date [-d "time-to-display"] +"format-to-display" -d指定要显示的时间,如果不指定默认为当前时间 ...
 - 包--json 与 pickle 模块
			
一. 包 一个含有__init__.py 文件的文件夹(将py 文件中的内容划分成不同的部分放在不同的py 文件中,在将这些py 文件放在一个文件夹中) 是模块,不做执行文件,仅做调用 m1.py 和 ...
 - Leetcode  回溯法  典型例题
			
那些要求列举所有的情况,或者说所有的情况都要探讨一下的例题,一般都可以考虑回溯法. 当遇到一个可以用到回溯法的时候需要按照如下步骤进行: 1.确定问题一个可以用到回溯法的时候需要按照如下步骤进行: 1 ...