在Tensorflow中实现leakyRelu操作详解(高效)


Posted in Python onJune 30, 2020

从github上转来,实在是厉害的想法,什么时候自己也能写出这种精妙的代码就好了

原地址:简易高效的LeakyReLu实现

代码如下:

我做了些改进,因为实在tensorflow中使用,就将原来的abs()函数替换成了tf.abs()

import tensorflow as tf
def LeakyRelu(x, leak=0.2, name="LeakyRelu"):
   with tf.variable_scope(name):
     f1 = 0.5 * (1 + leak)
     f2 = 0.5 * (1 - leak)
     return f1 * x + f2 * tf.abs(x) # 这里和原文有不一样的,我没试验过原文的代码,但tf.abs()肯定是对的

补充知识:激活函数ReLU、Leaky ReLU、PReLU和RReLU

“激活函数”能分成两类——“饱和激活函数”和“非饱和激活函数”。

在Tensorflow中实现leakyRelu操作详解(高效)

sigmoid和tanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函数”。使用“非饱和激活函数”的优势在于两点:

1.首先,“非饱和激活函数”能解决所谓的“梯度消失”问题。

2.其次,它能加快收敛速度。

Sigmoid函数需要一个实值输入压缩至[0,1]的范围

σ(x) = 1 / (1 + exp(−x))

tanh函数需要讲一个实值输入压缩至 [-1, 1]的范围

tanh(x) = 2σ(2x) − 1

ReLU

ReLU函数代表的的是“修正线性单元”,它是带有卷积图像的输入x的最大函数(x,o)。ReLU函数将矩阵x内所有负值都设为零,其余的值不变。ReLU函数的计算是在卷积之后进行的,因此它与tanh函数和sigmoid函数一样,同属于“非线性激活函数”。这一内容是由Geoff Hinton首次提出的。

ELUs

ELUs是“指数线性单元”,它试图将激活函数的平均值接近零,从而加快学习的速度。同时,它还能通过正值的标识来避免梯度消失的问题。根据一些研究,ELUs分类精确度是高于ReLUs的。下面是关于ELU细节信息的详细介绍:

在Tensorflow中实现leakyRelu操作详解(高效)

Leaky ReLUs

ReLU是将所有的负值都设为零,相反,Leaky ReLU是给所有负值赋予一个非零斜率。Leaky ReLU激活函数是在声学模型(2013)中首次提出的。以数学的方式我们可以表示为:

在Tensorflow中实现leakyRelu操作详解(高效)

ai是(1,+∞)区间内的固定参数。

参数化修正线性单元(PReLU)

PReLU可以看作是Leaky ReLU的一个变体。在PReLU中,负值部分的斜率是根据数据来定的,而非预先定义的。作者称,在ImageNet分类(2015,Russakovsky等)上,PReLU是超越人类分类水平的关键所在。

随机纠正线性单元(RReLU)

“随机纠正线性单元”RReLU也是Leaky ReLU的一个变体。在RReLU中,负值的斜率在训练中是随机的,在之后的测试中就变成了固定的了。RReLU的亮点在于,在训练环节中,aji是从一个均匀的分布U(I,u)中随机抽取的数值。形式上来说,我们能得到以下结果:

在Tensorflow中实现leakyRelu操作详解(高效)

总结

下图是ReLU、Leaky ReLU、PReLU和RReLU的比较:

在Tensorflow中实现leakyRelu操作详解(高效)

PReLU中的ai是根据数据变化的;

Leaky ReLU中的ai是固定的;

RReLU中的aji是一个在一个给定的范围内随机抽取的值,这个值在测试环节就会固定下来。

以上这篇在Tensorflow中实现leakyRelu操作详解(高效)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
Python计算一个文件里字数的方法
Jun 15 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
Python中关于浮点数的冷知识
Sep 22 Python
python实现引用其他路径包里面的模块
Mar 09 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 Python
详解Python设计模式之策略模式
Jun 15 Python
通过实例解析python创建进程常用方法
Jun 19 Python
python sleep和wait对比总结
Feb 03 Python
django上传文件的三种方式
Apr 29 Python
Python实现学生管理系统(面向对象版)
Jun 24 Python
asyncio异步编程之Task对象详解
Mar 13 Python
TensorFlow-gpu和opencv安装详细教程
Jun 30 #Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 #Python
python 最简单的实现适配器设计模式的示例
Jun 30 #Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 #Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 #Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 #Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 #Python
You might like
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
php GeoIP的使用教程
2011/03/09 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
JavaScript this 深入理解
2009/07/30 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
checkbox使用示例
2013/08/23 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
高效使用Python字典的清单
2018/04/04 Python
python3实现磁盘空间监控
2018/06/21 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
python实现控制台输出彩色字体
2020/04/05 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
医学专业五年以上个人求职信
2013/12/03 职场文书
餐厅采购员岗位职责
2014/03/06 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
协议书范文
2015/01/27 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
预备党员群众意见
2015/06/01 职场文书