1. 程式人生 > >卷積運算的本質,以tensorflow中VALID卷積方式為例。

卷積運算的本質,以tensorflow中VALID卷積方式為例。

卷積運算在數學上是做矩陣點積,這樣可以調整每個畫素上的BGR值或HSV值來形成不同的特徵。從程式碼上看,每次卷積核掃描完一個通道是做了一次四重迴圈。下面以VALID卷積方式為例進行解釋。 在這裡插入圖片描述

下面是python的程式碼:

def convolve(dateMat,kernel):
    m,n = dateMat.shape
    km,kn = kernel.shape
    newMat = np.ones(((m - km + 1),(n - kn + 1)))
    tempMat = np.ones(((km),(kn)))
    for row in range(m - km + 1):
        for col in range(n - kn + 1):
            for m_k in range(km):
                for n_k in range(kn):
                    tempMat[m_k,n_k] = dateMat[(row + m_k),(col + n_k)] * kernel[m_k,n_k]
            newMat[row,col] = np.sum(tempMat)

    return newMat