栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何为由tf操作组成的操作注册自定义渐变

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何为由tf操作组成的操作注册自定义渐变

您需要在以下范围内定义操作

with g.gradient_override_map({'Myop': 'MyopGrad'})

另外,您需要映射

Identity
而不是名称
Myop
到新渐变。

这是完整的代码:

import tensorflow as tffrom tensorflow.python.framework import ops@ops.RegisterGradient("MyopGrad")def frop_grad(op, grad):    x = op.inputs[0]    return 0 * x  # zero out to see the difference:def fprop(x):    x = tf.sqrt(x)    out = tf.maximum(x, .2)    return outa = tf.Variable(tf.constant([5., 4., 3., 2., 1.], dtype=tf.float32))h = fprop(a)g = tf.get_default_graph()with g.gradient_override_map({'Identity': 'MyopGrad'}):    h = tf.identity(h, name="Myop")    grad = tf.gradients(h, a)with tf.Session() as sess:    sess.run(tf.initialize_all_variables())    result = sess.run(grad)print(result[0])

输出:

[ 0.  0.  0.  0.  0.]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624858.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号