CNN 卷积(convolution)操作代码实现,封装成函数

          学习《动手学深度学习》,做个笔记

import numpy as np
def corr2d(X, K):    # 接受输⼊数组X与核数组K,并输出数组Y。
    h, w = K.shape
    Y = np.zeros((X.shape[0] - h + 1, X.shape[1] - w + 1))
    for i in range(Y.shape[0]):
        for j in range(Y.shape[1]):
            Y[i, j] = (X[i: i + h, j: j + w] * K).sum()
    return Y

X = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
K = np.array([[0, 1], [2, 3]])
Y = corr2d(X, K)
print(Y)

          输出

[[19. 25.]
[37. 43.]]

         默认步幅为 1 的情况下
在这里插入图片描述
          这也是我们代码里面的Y的大小计算的理论依据

猜你喜欢

转载自blog.csdn.net/qq_43657442/article/details/109067811