卷積運算的本質,以tensorflow中VALID卷積方式為例。
阿新 • • 發佈:2018-12-15
卷積運算在數學上是做矩陣點積,這樣可以調整每個畫素上的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