我想弄清楚Keras的批量标准化到底是什么.现在我有以下代码.

for i in range(8):

c = Convolution2D(128, 3, 3, border_mode = 'same', init = 'he_normal')(c)

c = LeakyReLU()(c)

c = Convolution2D(128, 3, 3, border_mode = 'same', init = 'he_normal')(c)

c = LeakyReLU()(c)

c = Convolution2D(128, 3, 3, border_mode = 'same', init = 'he_normal')(c)

c = LeakyReLU()(c)

c = merge([c, x], mode = 'sum')

c = BatchNormalization(mode = 1)(c)

x = c

我将批量标准模式设置为1,根据Keras文档1:样本标准化.此模式假定为2D输入.

我认为这应该做的只是将批次中的每个样本标准化,而不是每个其他样本.但是,当我查看调用函数的源代码时,我看到以下内容.

elif self.mode == 1:

# sample-wise normalization

m = K.mean(x, axis=-1, keepdims=True)

std = K.std(x, axis=-1, keepdims=True)

x_normed = (x - m) / (std + self.epsilon)

out = self.gamma * x_normed + self.beta

在这里,它只计算所有x的平均值,在我看来是(BATCH_SIZE,128,56,56).在模式1中,我认为它应该独立于批处理中的其他样本进行标准化.所以不应该轴= 1?在文档中还有什么“假设2D输入”?

最佳答案

In this it is just computing the mean over all of x which in my case is (BATCH_SIZE, 128, 56, 56) I think.

通过这样做,您已经违反了该图层的合同.这不是二维而是四维输入.

I thought it was supposed to normalize independent of the other samples in the batch when in mode 1

确实如此. K.mean(…,axis = -1)正在减小轴-1,它与输入的最后一个轴同义.因此,假设输入形状为(batchsz,features),轴-1将成为特征轴.

由于K.mean与numpy.mean非常相似,你可以自己测试一下:

>>> x = [[1,2,3],[4,5,6]]

>>> x

array([[1, 2, 3],

[4, 5, 6]])

>>> np.mean(x, axis=-1)

array([ 2., 5.])

您可以看到批次中每个样本的特征都减少了.

python batch normalization_python – Keras BatchNormalization,样本明智规范化究竟是什么?...相关推荐

  1. 基于MNIST手写体数字识别--含可直接使用代码【Python+Tensorflow+CNN+Keras】

    基于MNIST手写体数字识别--[Python+Tensorflow+CNN+Keras] 1.任务 2.数据集分析 2.1 数据集总体分析 2.2 单个图片样本可视化 3. 数据处理 4. 搭建神经 ...

  2. Python中的类、模块和包究竟是什么?

    Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...

  3. Python的GIL是什么鬼,多线程性能究竟如何

    2019独角兽企业重金招聘Python工程师标准>>> #Python的GIL是什么鬼,多线程性能究竟如何 前言:博主在刚接触Python的时候时常听到GIL这个词,并且发现这个词经 ...

  4. Keras少量样本训练强大图像分类模型

    原文:Building powerful image classification models using very little data 作者:Francois Chollet,2016.6.2 ...

  5. 盘一盘 Python 系列 10 - Keras (上)

    本文含 12119 字,64图表截屏 建议阅读 62 分钟 0 引言 本文是 Python 系列的第十三篇,也是深度学习框架的第一篇 - Keras. 深度学习之 Keras 深度学习之 Tensor ...

  6. python batch normalization_Batch Normalization 详解

    一.背景意义 本篇博文主要讲解2015年深度学习领域,非常值得学习的一篇文献:<Batch Normalization: Accelerating Deep Network Training b ...

  7. python机器学习库keras——CNN卷积神经网络人脸识别

    全栈工程师开发手册 (作者:栾鹏) python教程全解 github地址:https://github.com/626626cdllp/kears/tree/master/Face_Recognit ...

  8. python机器学习库keras——AutoEncoder自编码、特征压缩

    全栈工程师开发手册 (作者:栾鹏) python教程全解 keras使用深度网络实现自编码,也就是说对每个样本的n维特征,使用k为特征来表示,实现编码压缩的功能.也实现了特征选择的功能.比如手写体包含 ...

  9. python机器学习库keras——CNN卷积神经网络识别手写体

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python教程全解 keras使用CNN识别手写体 其 ...

最新文章

  1. 前端学习(1771):前端调试之serverworkers的概念和方法
  2. LeetCode 1064. 不动点(二分查找)
  3. .Net Core 开发成长路线图
  4. sqlite3使用简介
  5. php前台提交后台刷新,用js post数据后到后台,处理后如何实现前台页面刷新?...
  6. Python_微信开发
  7. Spring MVC(三) 数据转换、格式化、校验
  8. 马哥运维学习作业(九)
  9. jquery基本过滤选择器:first :last :not(.myclass) :even :odd :eq(1) :gt(5) :lt(1) :header :animated :focus
  10. 读完了csapp(中文名:深入理解计算机系统)
  11. 小米路由器能搭建虚拟服务器吗,【教程】如何通过小米路由器构建文件共享服务...
  12. 【人脸姿态】2D人脸姿态估计的两种方式:solvePnP与3DMM参数
  13. MultiDesk远程桌面连接
  14. pagefile.sys从C盘移到其他盘
  15. SpringBoot集成SpringSecurity(二) 个性化登录配置(remember-me mongodb)
  16. 【Hive任务优化】—— Map、Reduce数量调整
  17. 安全多方计算之BGW算法
  18. 接招吧,最强“高并发”系统设计 46 连问,分分钟秒杀一众面试者
  19. 孢子框架-互联网金融平台微服务架构设计(转)
  20. Mac 使用终端关机的命令

热门文章

  1. 惠普计算机电源怎么设置充电,惠普电脑怎么用外接电源时不用电池怎样设置的...
  2. 修改 jar 的一些体会
  3. 生命科学领域颠覆性技术——基因测序
  4. 不用在读长和准确性之间做选择题,PacBio发表新方法
  5. 计算机丢失mfc120u.dll,mfc120u.dll丢失怎么修好
  6. laravel php跨域请求,laravel开发中跨域的解决方案
  7. librosa.stft() 短时傅里叶变换
  8. vue element-ui Notification 挤在一起,重叠问题 解决办法
  9. add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX
  10. 计算机管理信息系统大作业,管理信息系统期末大作业