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 相关文章推荐
Python操作json数据的一个简单例子
Apr 17 Python
详解Django中的form库的使用
Jul 18 Python
基于python的Tkinter实现一个简易计算器
Dec 31 Python
python文本数据相似度的度量
Mar 12 Python
python 执行shell命令并将结果保存的实例
May 11 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
浅析Python面向对象编程
Jul 10 Python
python palywright库基本使用
Jan 21 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
PHP个人网站架设连环讲(四)
2006/10/09 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
Js 中debug方式
2010/02/07 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
2014/02/04 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
JS中的多态实例详解
2017/10/15 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
大学四年的个人自我评价
2014/01/14 职场文书
关于赌博的检讨书
2014/01/24 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
无房证明范本
2014/09/17 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
Python实现归一化算法详情
2022/03/18 Python