如果我将函数tf.fft(input, name=None)
插入神经网络,TensorFlow如何计算反向传播中的梯度?
我没有找到任何关于此的文档。
我正在使用TensorFlow 1.0。
答案 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函数,该函数不强制转换值,看看是否可行?不过,这并不容易。