Deep learning CNN中多维卷积数组上最大池运算的最佳时间复杂度
在思考这个问题时,我发现如果卷积2d数组是mn,这个算法在O(mn)时间内有效 看看怎么做。 对于一维情况,我们需要在数组中每个大小为k的窗口中找到最大值的答案。使用deque。 有关更多详细信息,请参见此 假设在2D情况下,k是过滤器大小,跨步是10填充和n*m矩阵 步骤1 然后计算所有大小为k的窗口的最大值,得到每行大小为k的窗口的最大值。在计算完所有行之后 步骤2 之后,在变换矩阵中,对修改矩阵中每列上大小为k的滑动窗口中最大的列执行相同的操作。 重复上述步骤后,将得到大小为k*k的整个子数组的最大值,该子数组从矩阵的位置i,j开始,i,j作为左上角,i+k-1,j+k-1作为右下角 证据很简单 当您有k行的最大值时,在一个大小为k的窗口中计算列上的最大值可以得到整个矩阵上的最大值 范例 532114 2 3 1 5 3 12346 123445 5 4 3 2 1 假设n=5m=5,k=3 修改后的矩阵看起来像 5 3 4 353 3 4 6 3 4 5 5 4 3 进一步应用步骤2看起来像 5 5 6 356 5 4 6 这就是我们面前的最大池层 这是一个可以优化CNN模型的好算法,还是有更好的现有算法?请发表你的意见Deep learning CNN中多维卷积数组上最大池运算的最佳时间复杂度,deep-learning,conv-neural-network,max-pooling,Deep Learning,Conv Neural Network,Max Pooling,在思考这个问题时,我发现如果卷积2d数组是mn,这个算法在O(mn)时间内有效 看看怎么做。 对于一维情况,我们需要在数组中每个大小为k的窗口中找到最大值的答案。使用deque。 有关更多详细信息,请参见此 假设在2D情况下,k是过滤器大小,跨步是10填充和n*m矩阵 步骤1 然后计算所有大小为k的窗口的最大值,得到每行大小为k的窗口的最大值。在计算完所有行之后 步骤2 之后,在变换矩阵中,对修改矩阵中每列上大小为k的滑动窗口中最大的列执行相同的操作。 重复上述步骤后,将得到大小为k*k的整个