tensorflow - Tensorflow:在 tf.gradients() 期间忽略特定依赖项
问题描述
给定变量 y 和 z,它们都依赖于张量 x。根据产品规则,如果我做 tf.gradients(y z,x),它会给我 y'(x)z(x) + z'(x)y(x)。有没有办法可以将 y 指定为相对于 x 的常数,这样 tf.gradients(y z,x) 只给我 z'(x)y(x)?
我知道 y_=tf.constant(sess.run(y)) 会给我 y 作为常数,但我不能在我的代码中使用该解决方案。
解决方案
您可以使用tf.stop_gradient()来阻止反向传播。在您的示例中阻止渐变:
y = function1(x)
z = function2(x)
blocked_y = tf.stop_gradient(y)
product = blocked_y * z
在你通过反向传播之后product
,反向传播将继续z
而不是y
。
推荐阅读
- javascript - Vue.JS - 有没有办法通过方法触发我的工具提示组件
- angular - 如何在打字稿中获取用户本地时区?
- reactjs - 如何将 gltf 编码/压缩为 draco
- typescript - TypeScript:作为对象键的功能
- c# - 不匹配的编码将程序梯度生成从 C++ 移植到 C#
- python - 如何从python中的图像中去除白色模糊
- ssl - PWA 能否显示内容存储在另一台服务器上的 iframe(原始域的子域)
- android - DatePickerDialog 和 Theme.MaterialComponents
- javascript - 如何在不干扰滚动位置的情况下更新 html 表格?
- java - 如何在谷歌云 kubernates 中部署 docker 镜像