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版
Dec 07 Python
Python删除Java源文件中全部注释的实现方法
Aug 30 Python
python计算两个地址之间的距离方法
Jun 09 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
PyQt5的相对布局管理的实现
Aug 07 Python
python openCV自制绘画板
Oct 27 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
Nov 11 Python
Python快速实现一键抠图功能的全过程
Jun 29 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-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
JS array 数组详解
2009/03/22 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
python绘图方法实例入门
2015/05/19 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
Django框架反向解析操作详解
2019/11/28 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
公司开业庆典策划方案
2014/06/04 职场文书
室内趣味活动方案
2014/08/24 职场文书
八年级英语教学反思
2016/02/15 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
Java对文件的读写操作方法
2022/04/29 Java/Android