使用本征张量 fft

Using eigen tensor fft

我看过使用特征 tensor fft module. Benoit Steiner offered some advice on how to use it here.

为张量流实现 CPU fft

本征 fft 使用相应张量的模板化类型来执行其计算。不幸的是,从 OpKernelContext 中提取的 inputs 被声明为 const,因为输入是不可变的。因此,我最终遇到了一堆无法分配 const 变量的编译器错误(因为 TensorFFTOp 在内部重用了模板化的类型名)。

解决此问题的最佳方法是什么?一些想法:

最后一个选项似乎是最直接的,但我正在为正确设置所有模板参数而苦苦挣扎。有什么建议吗?

在同事的帮助下,我们通过简单地将 const 输入数组转换为非 const 数组,设法获得了所需的行为。

typename TTypes<T, 2>::Tensor& casted_input = *reinterpret_cast<typename TTypes<T, 2>::Tensor*>(&input);
auto result = casted_input.template fft<Eigen::BothParts, Eigen::FFT_FORWARD>(dims);