我使用以下示例将tensorflow.spectral.dct与scipy.fftpack.dct进行了比较:
枕中的:
from scipy.fftpack import dct
import tensorflow as tf
xx=np.linspace(0,3,3)
x_dct=dct(xx,2,norm='ortho')
print(x_dct)数组( 2.59807621e+00,-2.12132034e+00,-1.81298661e-16)
in tensorflow:
x= tf.placeholder(tf.float32, shape=(1,3))
x_dct=tf.spectral.dct(x,2, norm='ortho')
x_dct=tf.squeeze(x_dct)
sess=tf.Session()
sess.run(x_dct,{x:xx})数组( 2.59807611e+00,-2.12132001e+00,2.92001914e-07,dtype=float32)
低能系数不相等。似乎有不同的低能量系数并不那么重要。
发布于 2019-01-27 07:34:21
我是tf.signal.dct的作者。它被设计成相当于scipy.fftpack.dct,但目前它们之间的数值差别很小。我相信您的例子是在float64中计算fftpack,而tf.signal.dct目前只支持tf.float32 (我计划修复这个问题)。tf.signal.rfft也有一个小问题(它是用tf.signal.dct实现的),它的第0系数不是零。我相信,当这两个问题都是固定的,你看到的低能量系数的差异会小得多。
很抱歉没有早点回复这个帖子!
https://stackoverflow.com/questions/51442485
复制相似问题