Фильтр становится маленькой матрицей
Пусть image X имеет shape[H,W], kernel K[k_h,k_w]. Для correlation без channels каждый выход есть сумма произведений в локальном прямоугольнике. Для strict convolution ядро переворачивается по обеим осям. Нельзя перевернуть только строки и считать задачу решённой.
Fixture H05: X=[[0,1,2],[3,4,5],[6,7,8]],K=[[0,1],[2,3]],padding0,stride1. Первый выход0×0+1×1+3×2+4×3=19. Весь output[[19,25],[37,43]].
Blur-ядро3×3 со всеми весами1/9 усредняет окно. Identity с единственной1вцентре сохраняет внутренние значения. SobelX выделяет вертикальные изменения, sharpen сочетает усиленный центр с отрицательными соседями. Имена presets описывают назначение фиксированных weights, а не уже выученные сетью признаки.
Эксперимент. Изменяйте image и kernel в JSON, затем padding/stride. Отрицательные и большие значения выхода не обрезаются до диапазона яркости: heatmap имеет отдельный display scale, а численная таблица хранит результат вычисления.
Для каждой оси output размер floor((input+2p−kernel)/s)+1. pздесь на каждой стороне, в отличие отtotal-padding записи некоторых источников H06. Если окно не помещается, показывается ошибка, а не массив отрицательной длины. Граничные нули могут создавать видимые искусственные края.