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装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 Python
利用python库在局域网内传输文件的方法
Jun 04 Python
pandas值替换方法
Jul 10 Python
Python实现定时执行任务的三种方式简单示例
Mar 30 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
对python中 math模块下 atan 和 atan2的区别详解
Jan 17 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
python3 deque 双向队列创建与使用方法分析
Mar 24 Python
学会python自动收发邮件 代替你问候女友
May 20 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 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原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
基于pandas向csv添加新的行和列
2020/05/25 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
存储过程和函数的区别
2013/05/28 面试题
顶岗实习接收函
2014/01/09 职场文书
临床护理求职信
2014/04/26 职场文书
民事赔偿协议书
2014/11/02 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
少先队工作总结2015
2015/05/13 职场文书
检举信的写法
2019/04/10 职场文书
如何在Python项目中引入日志
2021/05/31 Python
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏