TensorFlow如何计算FFT层的梯度?

时间:2019-12-08 02:50:23

标签: tensorflow

如果我将函数tf.fft(input, name=None)插入神经网络,TensorFlow如何计算反向传播中的梯度?

我没有找到任何关于此的文档。

我正在使用TensorFlow 1.0。

1 个答案:

答案 0 :(得分:0)

如果您只是在模型中间插入tf.fft(...)函数,我不确定tensorflow甚至将无法处理正向传递。如果您阅读了tf.signal.fft(https://www.tensorflow.org/api_docs/python/tf/signal/fft)上的文档,甚至只是阅读了tf.fft函数头,则它们都需要输入dtype = tf.complex64或dtype = tf.complex128。不确定tensorflow会将float32输入转换为复数,然后再次返回,从而使您可以完成前向传递,但我不确定,但是从读取tensorflow梯度文档中收集的数据来看,转换值导致误差梯度与Model参数之间的断开,表示向后传递将无效。您可以尝试实现一个自定义fft函数,该函数不强制转换值,看看是否可行?不过,这并不容易。