215 похожих чатов

Всем привет. Я пишу программку, которая выдает свертку на входную

матрицу. Сверточный фильтр презадан – это просто одномерный массив из нескольких чисел. Моя задача написать программу, которая будет работать эффективно, и еще мне нужно работать с int8 типом.

Я пишу на python, использую numpy.

Я использовал функцию из numpy convolve.

Я не могу понять, могу ли я использовать быстрое преобразование Фурье или нет (и нужно ли мне это вообще)? Scipy’евский fftconvolve возвращает комплексные числа, а мне нужны int8.

def convolve(A: np.array):
output = np.zeros(shape=A.shape, dtype=np.int8)

for i in np.arange(A.shape[0]):
output[i] = np.convolve(a=A[i], v=KERNEL, mode="same")

return output

Моя функция вот так выглядит. Это является оптимальным решением или это неэффективное решение?

9 ответов

12 просмотров

свертывание это convolution? если да, то для чего тебе это нужно?

Fedor- Автор вопроса
Fedor
Convolution, да. Это часть моей домашки.

а входные данные это звук или фото? fft преобразует в частоты

Fedor- Автор вопроса
Islom Babaev
а входные данные это звук или фото? fft преобразуе...

Входные данные у меня – матрица с рандомными integers int8.

Fedor- Автор вопроса
Islom Babaev
а входные данные это звук или фото? fft преобразуе...

Эта матрица с рандомными integers, но упражнение из серии computer vision. Поэтому можем представить, что на входе у меня чб изображение.

ssv
screenshot

что за курс если не секрет?

FFT для ускорения вычисления свёртки? Если массив не очень большой, то смысла нет. Если большой, то можно использовать fftconvolve из scipy. Эта функция как раз вычисляет свёртку через преобразование Фурье.

ssv
screenshot

Проход по массиву в питоновских циклах — плохая идея.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта