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爬虫之爬取糗事百科段子
Feb 17 Python
Python 类与元类的深度挖掘 I【经验】
May 06 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
python机器学习之神经网络实现
Oct 13 Python
Python2和Python3的共存和切换使用
Apr 12 Python
python sklearn库实现简单逻辑回归的实例代码
Jul 01 Python
python 字符串常用方法汇总详解
Sep 16 Python
python异步编程 使用yield from过程解析
Sep 25 Python
如何在 Django 模板中输出 &quot;{{&quot;
Jan 24 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
python 排列组合之itertools
2013/03/20 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
Windows下为Python安装Matplotlib模块
2015/11/06 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
Python解析微信dat文件的方法
2020/11/30 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
上海方立数码笔试题
2013/10/18 面试题
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
最热门的自我评价
2013/12/30 职场文书
上班睡觉检讨书
2014/01/09 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
师范生见习报告范文
2014/11/03 职场文书
给老婆的道歉信
2015/01/20 职场文书
基层工作经历证明
2015/06/19 职场文书