python自己實現卷積操作


代碼:

def easy_conv1(img, kernal, step = 1):
    N = img.shape[0]            # 圖片邊長
    F = kernal.shape[0]         # filter長
    L = int((N-F)/step) + 1     # 輸出結果邊長
    res = torch.zeros(L, L, requires_grad = True)
    for row in range(0, L):
        for column in range(0, L):
            tmp_row, tmp_col = row * step, column * step
            res[row, column] = (img[tmp_row : tmp_row + F, tmp_col : tmp_col + F] * kernal).sum().item()
    return res

X = torch.arange(1,17).view(4,4)
ker = torch.tensor([[1,1],[1,1]])

print("+-"*25)
print(easy_conv1(X, ker, 1))
print("=="*25)
print(easy_conv1(X, ker, 2))

結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM