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中设置变量访问权限的方法
Apr 27 Python
利用Python读取txt文档的方法讲解
Jun 23 Python
python进行两个表格对比的方法
Jun 27 Python
python操作excel的方法
Aug 16 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
使用apiDoc实现python接口文档编写
Nov 19 Python
零基础学Python之前需要学c语言吗
Jul 21 Python
Python tkinter界面实现历史天气查询的示例代码
Aug 23 Python
基于python实现操作redis及消息队列
Aug 27 Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 Python
Python中with上下文管理协议的作用及用法
Mar 18 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 日期时间处理函数小结
2009/12/18 PHP
PHP代码审核的详细介绍
2013/06/13 PHP
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
web页面数据展示新想法(json)
2010/06/08 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
react-router实现按需加载
2017/05/09 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
javascript实现日历效果
2019/06/17 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
python计算方程式根的方法
2015/05/07 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Python编程之序列操作实例详解
2017/07/22 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
pandas的qcut()方法详解
2019/07/06 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
python通过cython加密代码
2020/12/11 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
为什么需要版本控制?
2013/08/08 面试题
霸气押韵的班级口号
2014/06/09 职场文书
2014年招生工作总结
2014/11/26 职场文书
2014年居委会工作总结
2014/12/09 职场文书
中班教师个人总结
2015/02/05 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书