ops.RegisterGradent tensorflow的附加参数

ops.RegisterGradent tensorflow的附加参数,tensorflow,Tensorflow,如果这个问题的措辞模棱两可,我要提前表示深深的歉意 从 我学习了如何在python中实现(自定义)渐变。原则上,函数_zero_out_grad可以有任意多个参数(因为它是python函数)。例如,假设_zero _out _grad有3个参数- op,grad,和一个张量“t”,即0,out,grad(op,grad,t) python函数的入口点是调用tf.minimize、tf.gradients或tf.compute_gradients。我的问题是:如果有的话,如何通过这些函数之一将第三

如果这个问题的措辞模棱两可,我要提前表示深深的歉意

从 我学习了如何在python中实现(自定义)渐变。原则上,函数_zero_out_grad可以有任意多个参数(因为它是python函数)。例如,假设_zero _out _grad有3个参数- op,grad,和一个张量“t”,即0,out,grad(op,grad,t)

python函数的入口点是调用tf.minimize、tf.gradients或tf.compute_gradients。我的问题是:如果有的话,如何通过这些函数之一将第三个参数(“t”)传递给_zero_out_grad


在tf.gradients的例子中,我观察到对tf.gradients的调用在tensorflow/python/ops/gradients\u impl.py中对“grad_fn(op,*out_grads)”的底层调用——第562行——一个只接受两个参数的函数

*out_grads
实际上接受任意的参数,并将其自身表示为一个名为out_grads的元组。尝试在python中搜索
参数扩展
谢谢@shadow。我没有想到这一点。嘿@shadow-我想了很久,怀疑这并没有达到我想要的效果。将其添加到*out_grads可确保针对*out_grad的各个内容计算op的梯度。我不想计算op关于“t”的梯度。我认为梯度计算是通过tensorflow/python/ops/gradients\u impl.py(与方法tf.gradients的定义位置相同)中的_MaybeCompile方法调用的,但我不确定是否确实如此:(