自相关与 Tensorflow

Autocorrelation with Tensorflow

我想用 tensorflow 计算一些值的自相关。 我可以使用 scipy / numpy 进行计算,但我还没有弄清楚,如果可以使用 tensorflow。

我想要的是:

import tensorflow as tf
from scipy import signal
import numpy as np
import tensorflow_probability as tfp
import matplotlib.pyplot as plt

test_data = tf.random.normal((100,))

plt.plot(signal.correlate(test_data, test_data, mode='full', method='auto'))
plt.plot(np.correlate(test_data, test_data, mode='full'))

正如预期的那样,scipy 和 numpy 的输出是相同的。 我尝试使用 Tensorflow

plt.plot(tfp.stats.auto_correlation(test_data))

我最初假设的,会做同样的事情,但给出完全不同的结果。 是否有与 numpy / scipy?

相同的张量流函数

试试这个

td = tf.pad(test_data, [[0, len(test_data)]])[..., tf.newaxis]
plt.plot(tf.nn.conv1d(td[tf.newaxis, :], td[:, tf.newaxis], stride=1, padding='SAME')[0, :, 0])