-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Compilation issue #4
Comments
Hi, Do not use the default parameters, they are the reason for running out of memory. Use the ones suggested inside the 'results' folder. |
Sorry my bad, inside each iteration of gaussian and laplacian functions, the lists are continuously appended. These lists aren't cleared until the end. Therefore for higher resolution or longer videos, the memory will overflow. These functions have to be optimized. |
The following function require less memory if using Gaussian kernel. from scipy.fft import fft, ifft, fftfreq
def idealTemporalBandpassFilter_chunck(images, fps, freq_range, axis=0, chunk_size=200):
num_frames = images.shape[axis]
result = np.empty_like(images)
for start in tqdm.tqdm(
range(0, num_frames, chunk_size), ascii=True, desc="Gaussian Pyramids Filtering"
):
end = min(start + chunk_size, num_frames)
chunk = images.take(np.arange(start, end), axis=axis, mode="clip")
fft_result = fft(chunk, axis=axis)
frequencies = fftfreq(chunk.shape[0], d=1.0 / fps)
low = (np.abs(frequencies - freq_range[0])).argmin()
high = (np.abs(frequencies - freq_range[1])).argmin()
fft_result[:low] = 0
fft_result[high:] = 0
result[start:end, ...] = ifft(fft_result, axis=0).real
return result |
Everything works up until the final part and I keep getting this issue:
numpy.core._exceptions._ArrayMemoryError: Unable to allocate 12.0 GiB for an array with shape (3, 720, 1280, 292) and data type complex 128
Any help?
Thanks!
The text was updated successfully, but these errors were encountered: