pytorch的离散余弦变换(dct)
torch-dct的Python项目详细描述
Pythorch的DCT(离散余弦变换)
这个库根据pytorch中内置的fft操作实现dct,以便 反向传播在CPU和GPU上都可以通过它工作。有关更多信息 DCT和此处使用的算法,请参见 Wikipedia和报纸 J. Makhoul。这个 StackExchange article 可能也有帮助。
目前正在实施以下操作:
- 一维dct-i及其逆(即按比例的dct-i)
- 一维dct-ii及其逆(即按比例的dct-iii)
- 二维dct-ii及其逆(即按比例的dct-iii)
- 三维dct-ii及其逆(即按比例的dct-iii)
安装
pip install torch-dct
需要torch>=0.4.1
(较低版本可能可以,但我还没有测试它们)。
您可以通过获取源代码并运行pytest
来运行测试。为了运行测试
需要安装scipy
。
用法
importnumpyasnpimporttorchimporttorch_dctasdctx=torch.tensor(np.random.normal(size=(1,200)))X=dct.dct(x)# DCT-II done through the last dimensiony=dct.idct(X)# scaled DCT-III done through the last dimensionassert(torch.abs(x-y)).sum()<1e-10# x == y within numerical tolerance
dct.dct1
和dct.idct1
表示dct-i及其逆。用法相同。
只要用dct_2d
、dct_3d
、idct_2d
、idct_3d
等替换dct
和idct
获取多维版本。