tensorflow 实现自定义梯度反向传播代码


Posted in Python onFebruary 10, 2020

以sign函数为例:

tensorflow 实现自定义梯度反向传播代码

sign函数可以对数值进行二值化,但在梯度反向传播是不好处理,一般采用一个近似函数的梯度作为代替,如上图的Htanh。在[-1,1]直接梯度为1,其他为0。

#使用修饰器,建立梯度反向传播函数。其中op.input包含输入值、输出值,grad包含上层传来的梯度
@tf.RegisterGradient("QuantizeGrad")
def sign_grad(op, grad):
 input = op.inputs[0]
 cond = (input>=-1)&(input<=1)
 zeros = tf.zeros_like(grad)
 return tf.where(cond, grad, zeros)
 
#使用with上下文管理器覆盖原始的sign梯度函数
def binary(input):
 x = input
 with tf.get_default_graph().gradient_override_map({"Sign":'QuantizeGrad'}):
  x = tf.sign(x)
 return x
 
#使用
x = binary(x)

以上这篇tensorflow 实现自定义梯度反向传播代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pyqt和pyside开发图形化界面
Jan 22 Python
Python扩展内置类型详解
Mar 26 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
Jun 13 Python
Python的argparse库使用详解
Oct 09 Python
python实现在图片上画特定大小角度矩形框
Oct 24 Python
python找出一个列表中相同元素的多个索引实例
Jun 11 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
pycharm实现在虚拟环境中引入别人的项目
Mar 09 Python
Python selenium键盘鼠标事件实现过程详解
Jul 28 Python
python两个list[]相加的实现方法
Sep 23 Python
python中uuid模块实例浅析
Dec 29 Python
一行Python命令实现批量加水印
Apr 07 Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 #Python
Python3 元组tuple入门基础
Feb 09 #Python
Python3列表List入门知识附实例
Feb 09 #Python
Python 动态变量名定义与调用方法
Feb 09 #Python
python函数定义和调用过程详解
Feb 09 #Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 #Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 #Python
You might like
php email邮箱正则
2008/10/08 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
jquery 元素相对定位代码
2010/10/15 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
2015/03/06 Python
详解Python装饰器由浅入深
2016/12/09 Python
python3图片文件批量重命名处理
2019/10/31 Python
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
盛大笔试题
2016/11/05 面试题
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
2014年情人节活动方案
2014/02/16 职场文书
经济担保书范文
2014/04/02 职场文书
2014年师德承诺书
2014/05/23 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸