【发布时间】:2020-04-27 23:35:26
【问题描述】:
我想在 GPU 上计算图像的自相关。 但是,当我使用 cupy 相关函数时,我得到的结果与 CPU 计算不同。是不是因为 cupyx.scipy.ndimage.correlate 通过统一图像的自相关自动归一化结果?
import numpy as np
import scipy.signal as sc
import cupy as cp
import cupyx.scipy.ndimage as cnd
from matplotlib import pyplot as plt
ones = np.ones((128,128))
corr_cpu = sc.correlate2d(ones,ones)
corr_gpu = cnd.correlate(cp.array(ones),cp.array(ones))
plt.figure()
plt.imshow(corr_cpu)
plt.colorbar()
plt.title('Correlation CPU')
plt.figure()
plt.imshow(cp.asnumpy(corr_gpu))
plt.colorbar()
plt.title('Correlation GPU')
plt.show()
【问题讨论】:
-
如果 CPU 计算使用
scipy.ndimage.correlate而不是scipy.signal.correlate2d,差异是否仍然存在? -
yes scipy.signal.correlate 给出与 correlate2d 相同的结果
标签: python gpu cupy autocorrelation