zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python 实现简单的二维卷积

Python 实现 简单 卷积 二维
2023-09-14 09:15:49 时间
import numpy as np 

matrics=np.array(list(range(5*5)))                   #5*5的矩阵

MAT=matrics.reshape([5,5])


kernel=np.array(list(range(3*3))).reshape([3,3])     #3*3 的 kernel

print(MAT)

print(kernel)



print('#########################################')
H,W=MAT.shape

h,w=kernel.shape


stride=2                                           




pad=0


## 卷及后的尺寸

M=(H-h + pad )//stride+1                         

N=(W- w + pad )//stride+1

out=np.zeros([M,N])


# 卷积是六重 循环  前两重是   for b in range(batchsize)
#  for t in (卷积通道数)
for  i in range(0,M ):
    for j in range(0,N):
        
        px=stride*i 
        
        py=stride*j
        
        temp=MAT[px:px+h,py:py+w]
        
        tw=temp*kernel
        
        out[i,j]=tw.sum()


print(out)
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]
 [20 21 22 23 24]]
[[0 1 2]
 [3 4 5]
 [6 7 8]]
#########################################
[[312. 384.]
 [672. 744.]]