【问题标题】:Autocorrelation with Tensorflow与 Tensorflow 的自相关
【发布时间】:2021-02-05 12:06:13
【问题描述】:

我想计算一些值与 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 一样的 tensorflow 函数?

【问题讨论】:

    标签: python numpy tensorflow tensorflow-probability


    【解决方案1】:

    试试这个

    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])
    

    【讨论】:

    • 谢谢!您的答案提供了正确的结果。不幸的是,tensorflow 似乎非常慢,所以我可能会坚持使用 numpy 实现! (1.5 ms vs 16 us)
    • 但我还了解了 [...] 索引,这有助于我清理一些不同的代码!所以也谢谢你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 2020-04-27
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    相关资源
    最近更新 更多