LRN函数类似DROPOUT和数据增强作为relu激励之后防止数据过拟合而提出的一种处理方法,全称是 local response normalization--局部响应标准化。这个函数很少使用,基本上被类似DROPOUT这样的方法取代,具体原理还是值得一看的

函数原型

def lrn(input, depth_radius=None, bias=None, alpha=None, beta=None,
        name=None):

官方文档给的解释如下,这些官方文档看了没啥卵用,越看越糊涂

sqr_sum[a, b, c, d] =
    sum(input[a, b, c, d - depth_radius : d + depth_radius + 1] ** 2)
output = input / (bias + alpha * sqr_sum) ** beta

见最早的出处AlexNet论文对它的定义, 《ImageNet Classification with Deep ConvolutionalNeural Networks》

i:代表下标,你要计算像素值的下标,从0计算起

j:平方累加索引,代表从j~i的像素值平方求和

x,y:像素的位置,公式中用不到

a:代表feature map里面的 i 对应像素的具体值

N:每个feature map里面最内层向量的列数

k:超参数,由原型中的blas指定

α:超参数,由原型中的alpha指定

n/2:超参数,由原型中的deepth_radius指定

β:超参数,由原型中的belta指定

import tensorflow as tf  a = tf.constant([  [[1.0, 2.0, 3.0, 4.0],  [5.0, 6.0, 7.0, 8.0],  [8.0, 7.0, 6.0, 5.0],  [4.0, 3.0, 2.0, 1.0]],  [[4.0, 3.0, 2.0, 1.0],  [8.0, 7.0, 6.0, 5.0],  [1.0, 2.0, 3.0, 4.0],  [5.0, 6.0, 7.0, 8.0]]
])
#reshape 1批次  2x2x8的feature map
a = tf.reshape(a, [1, 2, 2, 8])  normal_a=tf.nn.lrn(a,2,0,1,1)
with tf.Session() as sess:  print("feature map:")  image = sess.run(a)  print (image)  print("normalized feature map:")  normal = sess.run(normal_a)  print (normal) 

输出:

    feature map:  [[[[ 1.  2.  3.  4.  5.  6.  7.  8.]  [ 8.  7.  6.  5.  4.  3.  2.  1.]]  [[ 4.  3.  2.  1.  8.  7.  6.  5.]  [ 1.  2.  3.  4.  5.  6.  7.  8.]]]]  normalized feature map:  [[[[ 0.07142857  0.06666667  0.05454545  0.04444445  0.03703704  0.03157895  0.04022989  0.05369128]  [ 0.05369128  0.04022989  0.03157895  0.03703704  0.04444445  0.05454545  0.06666667  0.07142857]]  [[ 0.13793103  0.10000001  0.0212766   0.00787402  0.05194805  0.04  0.03448276  0.04545454]  [ 0.07142857  0.06666667  0.05454545  0.04444445  0.03703704  0.03157895  0.04022989  0.05369128]]]]  

分析如下:

由调用关系得出 n/2=2,k=0,α=1,β=1,N=8

第一行第一个数来说:i = 0

a = 1,min(N-1, i+n/2) = min(7, 2)=2,j = max(0, i - k)=max(0, 0)=0,下标从0~2个数平方求和, b=1/(1^2 + 2^2 + 3^2)=1/14 = 0.071428571

同理,第一行第四个数来说:i = 3

a = 4,min(N-1, i+n/2) = min(7, 5 )=5, j = max(0,1) = 1,下标从1~5进行平方求和,b = 4/(2^2 + 3^2 + 4^2 + 5^2 + 6^2) = 4/90=0.044444444

再来一个,第二行第一个数来说: i = 0

a = 8, min(N-1, i+n/2) = min(7, 2) = 2, j=max(0,0)=0, 下标从0~2的3个数平方求和,b = 8/(8^2 + 7^2 + 6^2)=8/149=0.053691275

其他的也是类似操作

原文:https://blog.csdn.net/banana1006034246/article/details/75204013

tensorflow中的lrn函数详解相关推荐

  1. tensorflow中tf.get_variable()函数详解

    如果变量存在,函数tf.get_variable()会返回现有的变量:如果变量不存在,会根据给定形状和初始值创建一个新的变量. def get_variable(name, shape=None, d ...

  2. python getattr_Python中的getattr()函数详解:

    标签:Python中的getattr()函数详解: getattr(object, name[, default]) -> value Get a named attribute from an ...

  3. timm 视觉库中的 create_model 函数详解

    timm 视觉库中的 create_model 函数详解 最近一年 Vision Transformer 及其相关改进的工作层出不穷,在他们开源的代码中,大部分都用到了这样一个库:timm.各位炼丹师 ...

  4. python input函数详解_对Python3中的input函数详解

    下面介绍python3中的input函数及其在python2及pyhton3中的不同. python3中的ininput函数,首先利用help(input)函数查看函数信息: 以上信息说明input函 ...

  5. Python中的bbox_overlaps()函数详解

    Python中的bbox_overlaps()函数详解 想要编写自己的目标检测算法,就需要掌握bounding box(边界框)之间的关系.在这之中,bbox_overlaps()函数是一个非常实用的 ...

  6. java的匿名函数_JAVA语言中的匿名函数详解

    本文主要向大家介绍了JAVA语言中的匿名函数详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.使用匿名内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: ...

  7. 内核中的kmalloc函数详解

    一.kmalloc函数详解 #include <linux/slab.h> void *kmalloc(size_t size, int flags); 给 kmalloc 的第一个参数是 ...

  8. 前端如何设置背景颜色的透明度 css中的 rgba() 函数详解 :background-color: rgba(255,192,203,0.3)

    目录 前言 rgba() 函数 详解 再分享一个小技巧哈哈哈 前言 今天在开发移动端的时候感觉没背景颜色有点丑,再加上自己做的是蛋糕app,觉得暖色应该会很好看,于是就用了这行代码 backgroun ...

  9. Opencv中的imshow函数详解

    前言 使用opencv对图像进行处理之后,通常调用imshow函数来显示处理结果.但是,我们经常会发现显示结果和我们预期的结果有些差别.这是由于opencv经常会涉及到对多种图像数据类型的处理,如果我 ...

最新文章

  1. 【PC工具】强力推荐:最好用的日历笔记工具,没有之一!google日历
  2. poj 2456 Aggressive cows(贪心+二分)
  3. 删除weblogic域
  4. Mac OS 在远程主机(Linux 系统)上使用命令执行 sql 脚本文件(使用的是 MySQL 数据库)
  5. 计算时间差_小王子是怎么用四步法进行时间计算并成功避开日界线的
  6. bzoj 3781: 小B的询问(莫队)
  7. 博时基金:DevOps重塑IT价值助力金融科技创新发展
  8. Rust : ? 操作符(待续)
  9. Spring 注解中@Resource 和 Authwired 的区别
  10. 首届恩智浦智能车比赛回顾
  11. 电源 PFC(功率因数校正)电路拓扑,共计100多份,内含A PFC,连续断续,交错,维也纳,各功率段的PFC电路,还有电感 设计选型
  12. 【图解算法】彻底搞懂(括号匹配)——图解带你直击本质
  13. signature=de4fefc549f99f0b0c76a2cec8e340bf,Diagnostics based on faulty signature
  14. Spring关于AOP配置举例(XML配置文件方式)
  15. 一个emoji表情包处理工具类
  16. 尤雨溪:Vue3 将在2022年2月7日成为新的默认版本(你准备好了吗?)
  17. RSPS 2019软件帮助手册
  18. 面试须知的前端渲染和后端渲染
  19. mfc,WM_CTLCOLOR,WM_PAINT
  20. 菜鸟初识脚本 and 脚本语言

热门文章

  1. 一、web安全入门基础知识
  2. 读书笔记-刷新:重新发现商业与未来
  3. CentOS7 彻底卸载 MySQL5.7 (保姆级)
  4. latex 中特殊符号:字母中央有斜杠
  5. 持续完善合作生态 GBase数据库3月适配认证19款产品
  6. SOUI界面库 第1讲-开发环境搭建
  7. java 泛型方法 调用_java_泛型方法使用实例
  8. 1.JVM与Java体系结构
  9. linux-help命令,查询shell内置命令帮助文档
  10. python中yield用法