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操作xml文件详细介绍
Jun 09 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
深入浅析python 协程与go协程的区别
May 09 Python
selenium处理元素定位点击无效问题
Jun 12 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
Python 存取npy格式数据实例
Jul 01 Python
Python filter过滤器原理及实例应用
Aug 18 Python
Python爬虫开发与项目实战
Dec 16 Python
python基础之类属性和实例属性
Oct 24 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
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
php中上传文件的的解决方案
2018/09/25 PHP
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
2018/03/08 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
Python中如何导入类示例详解
2019/04/17 Python
Python3.5运算符操作实例详解
2019/04/25 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
python实现最大优先队列
2019/08/29 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
50道外企软件测试面试题
2014/08/18 面试题
幼儿园保育员辞职信
2014/01/12 职场文书
放假通知格式
2015/04/14 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
Django中session进行权限管理的使用
2021/07/09 Python
Go语言安装并操作redis的go-redis库
2022/04/14 Golang
使用python生成大量数据写入es数据库并查询操作(2)
2022/09/23 Python