使用特征张量fft
Using eigen tensor fft
我曾研究过使用特征张量fft模块为tensorflow实现CPU fft。Benoit Steiner就如何在这里使用它提供了一些建议。
特征fft使用相应张量的模板化类型来执行其计算。不幸的是,从OpKernelContext
中提取的输入被声明为const
,因为输入是不可变的。因此,我最终遇到了一堆无法分配常量变量的编译器错误(因为TensorFFTOp
在内部重用了模板化的typename)。
解决这个问题的最佳方法是什么?一些想法:
- 使用
mutable_input
,但这似乎只是为了解决问题而弯曲API - 用
std::remove_const
修改TensorFFTOp
,以便在内部使用非const
变量 - 显式实例化
TensorFFTOp
,而不是使用TensorBase.h
中定义的模板成员函数
最后一个选项似乎是最简单的,但我很难把所有的模板参数都做好。有什么建议吗?
在同事的帮助下,我们通过简单地将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);
相关文章:
- 使用Pybind11向Python公开Eigen::张量
- C++中的张量流对象检测
- 在官方张量流 resnet50 模型上运行 tflite 精度工具
- PyTorch C++将数据转换为张量失败
- 如何使用 c++ 更改张量流中的per_process_gpu_memory_fraction?
- 编译 GPU 的张量流示例自定义操作
- 在 Torch C++ API 中,如何快速写入张量的内部数据?
- 如何在C++中将一个特征张量乘以另一个特征张量的标量和?
- C++ ABI 兼容性问题/张量流
- 如何从内存缓冲区加载张量流图
- PyTorch C++ 前端向前返回多个张量
- 从 std::向量值创建张量<Tensor>
- 张量流错误 此文件需要编译器和库支持 ISO C++ 2011 标准
- 如何将自定义特征张量类存储到 std::vector 中?
- CUDA 高效的 nd-array(张量)切片
- 部署在张量流中训练的神经网络来火炬C++的最佳方法是什么?
- 微调张量流对象检测预训练模型
- 犰狳(C++)中的快速阵列置换(广义张量转置)
- 添加 OP 张量流调试
- 使用特征张量fft