def conv(image,filter):
result = []
for i in range(image.shape[0]-(filter.shape[0]-1)):
for j in range(image.shape[1]-(filter.shape[1]-1)):
value = np.sum(image[i:i+filter.shape[0],j:j+filter.shape[1]]*filter)
result.append(value)
result = np.array(result)
res = result.reshape(image.shape[0]-filter.shape[0]+1,image.shape[1]-filter.shape[1]+1)
return res
import numpy as np
featuremap = np.array([
[2,3,0,1,2,2],
[1,1,1,4,2,3],
[3,2,3,2,3,1],
[0,0,1,3,1,2],
[2,4,2,1,3,4],
[2,3,0,2,3,1]])
filter = np.array([[2,0,1],
[0,1,-1],
[1,0,-2]])
conv(featuremap,filter)
print(conv(featuremap,filter))