python - 如何为在 tensorflow 中处理复杂张量的自定义操作定义梯度?

标签 python numpy tensorflow

如果你有一个复数张量,tensorflow 已经有一个操作来获取这些复数的大小 ( tf.abs )。现在我想添加一个函数来计算每个数字的角度。这个函数使用numpy很容易实现,梯度为known

当涉及到添加基于 numpy 的自定义 tensorflow 操作时,this似乎是要走的路。然而这里的输入是复数。所以我的问题是,是否可以使用相同的方法但处理复数?直接复制 tf.abs 中使用的方法是不可能的,因为它使用 c++。

最佳答案

看起来tf.arg很快就会存在:https://github.com/tensorflow/tensorflow/pull/10643 。如果您在那之前想要一些东西,我建议您

def arg(z):
  return tf.atan2(tf.imag(z), tf.real(z))

关于python - 如何为在 tensorflow 中处理复杂张量的自定义操作定义梯度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44564397/

相关文章:

python - matplotlib 中同一循环的两个不同图?

python - 如何发现 'pip install git+ssh://...' 在哪里搜索 ssh key ?

python - 在 APScheduler 中超出计划的手 Action 业执行

python - *为什么* multiprocessing 序列化我的函数和闭包?

python - 识别并替换 ndarray 中的行

python - 了解 numpy 内存映射的性能

python - numpy 数组的 bool /非零索引循环的替代方案

python - 使用 python pip 在 Windows 中的 Tensorflow

python - modulenotfounderror 没有名为 '_pywrap_tensorflow_internal' 的模块

python - @tf.function ValueError : Creating variables on a non-first call to a function decorated with tf. 函数,无法理解行为