在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 相关文章推荐
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
Python线性方程组求解运算示例
Jan 17 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
浅析python的Lambda表达式
Feb 27 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
python实现socket+threading处理多连接的方法
Jul 23 Python
学习python需要有编程基础吗
Jun 02 Python
python基于爬虫+django,打造个性化API接口
Jan 21 Python
Python基础教程,Python入门教程(超详细)
Jun 24 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中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
PHP网络操作函数汇总
2015/05/18 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
小程序实现五星点评效果
2018/11/03 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
python打开文件的方式有哪些
2020/06/29 Python
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
高中自我评价范文
2014/01/27 职场文书
人力资源总监工作说明
2014/03/03 职场文书
大学四年个人自我小结
2014/03/05 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
中学教师个人总结
2015/02/10 职场文书
会议室使用管理制度
2015/08/06 职场文书
学前班教学反思
2016/02/24 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
Python 统计序列中元素的出现频度
2022/04/26 Python