Частотная область Relu: Как вычислить сумму дираков, где значения пространственной области положительны? - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь реализовать частотную область ReLu, как описано в: http://cs231n.stanford.edu/reports/2015/pdfs/tema8_final.pdf

Формула, которая меня смущает, приведена в левом нижнем углу страницы 4. Я не уверен, что правильно вычисляю сумму БПФ функции Дирака. Я неправильно интерпретирую эту формулу?

import numpy as np
import matplotlib.pyplot as plt

img = np.array([[-1.0,2.3],[5,7.8]])

# Dirac is essentially the shifting matrix
# So create the 2d shifting matrix values
N = 2
x = np.arange(0, N, 1)
y = np.arange(0, N, 1)
xm, ym = np.meshgrid(x, y)
shiftMat = np.exp(1j * ((2.0 * np.pi)) * (xm + ym))

# Set equal to shift mat
# In this trivial example I know that [0,0] is only negative position
# So set to 0 and compute sum of all positions in which f(x) > 0 as detailed in paper
freqRelu = shiftMat
freqRelu[0,0] = 0
freqRelu = np.sum(freqRelu)

# Fourier Convolution and IFFT
imgFFT = np.fft.fft2(img)
freqR = np.multiply(imgFFT,freqRelu)
reluedFreq = np.real(np.fft.ifft2(freqR))

# Spatial Relu For Comparision
reluedImg = img
reluedImg[0,0] = 0

plt.subplot(121)
plt.imshow(reluedImg)
plt.subplot(122)
plt.imshow(reluedFreq)
plt.show()

print(np.allclose(reluedFreq,reluedImg))
print(reluedFreq)
print(reluedImg)

1 Ответ

0 голосов
/ 14 июня 2018

Для справки на этот вопрос ответили при обмене стеками сигналов здесь: https://dsp.stackexchange.com/questions/49023/sum-of-diracs-in-frequency-domain

...