【发布时间】:2021-12-26 04:05:13
【问题描述】:
在任何 python 库中是否存在卷积,我只能围绕矩阵中的非零条目进行卷积?
对于卷积,我的意思是 scipy.ndimage.convolve - 但在这里我没有这个选项。
这是一个例子:
matrix = np.array([[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 1, 1],
[ 0, 0, 0],
[ 0, 0, 0]])
kernel = np.array([[ 0, -1, 0],
[-1, 4, -1],
[ 0, -1, 0]])
我只想围绕矩阵中带有 1 的条目进行卷积 避免将算子应用于零区域以减少计算负担
【问题讨论】:
-
我认为您可能需要通过围绕非零条目进行卷积来解释您的意思。
-
我加个例子,现在清楚了吗?
-
好吧,将您的运算符应用于矩阵映射块,这些块都是 0 到 0,并且仅在包含非零值的邻域中才有非零结果。因此,只需进行通常的卷积,您就可以在非零元素处或附近得到非零结果,对吧?您是否想避免将运算符应用于零区域以减少计算负担?也许您可以多说一下您的更大目标是什么。
-
您是否希望避免将运算符应用于零区域以减少计算负担? --> 这正是我想做的事
-
在尝试进行微优化之前,请提供具体证据证明您遇到了性能瓶颈:numpy 和 scipy 在他们的工作中非常出色,甚至可以卷积 100,000,000 cpu 上具有 3x3 内核的元素矩阵,在 5 年前非常适合计算,但今天已经过时了,几乎不需要任何时间。
标签: python convolution