свертка — Почему conv2 так медленно в броненосце?

я использую conv2 Функция в броненосце с размером изображения 224х224 и размером маски 10х10. Для 3-канального изображения я делаю что-то вроде:

arma::mat temp(215, 215, fill::zeros);
for (int i = 0; i < 3; i++)
temp += arma::mat(arma::conv2(image_channel, channel_mask)).submat(9, 9, 222, 222);

Я хочу только действительный свертка и, следовательно, я использую submat. Этот код выполняется в цикле 32 раз с разными масками. За 32 итерации занимают 2,37 секунды, что намного медленнее, чем октава. Octave может выполнить тот же код за 0,25 секунды.

И октава, и броненосец настроены на использование OpenBLAS, и я определил соответствующие флаги в файле c ++. (Например. ARMA_USE_BLAS так далее.). Кто-нибудь может сказать, пожалуйста, в чем здесь проблема.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]