# -*- coding: UTF-8 -*-
import numpy as np
lis_arry = np.array([[1,2,3,4,5,6],[4,5,6,7,8,9],[7,8,9,10,11,12]])
print(lis_arry[0][0])
conv_mask = np.array([[1,1],[1,1]])
padding = 1
step = 1
def pad(feature,num):
m1 , n1 = feature.shape
print('m - n',m1,n1)
new_m = m1 + 2*num
new_n = n1 + 2*num
new_LH = (int(new_m),int(new_n))
new_map = np.zeros(new_LH)
new_map[num:num+m1,num:num+n1] = feature[:,:]
print(new_map)
return new_map
def conv(feature_map , mask_conv,padding ,step):
m, n = feature_map.shape
print(feature_map.shape)
conv_x, conv_y = mask_conv.shape
target_x = (m - conv_x + 2 * padding) / step + 1
target_y = (n - conv_y + 2 * padding) / step + 1
target = (int(target_x), int(target_y))
result_featureMap = np.zeros(target)
print(result_featureMap.shape)
if padding != 0:
feature_map = pad(feature_map,padding)
m , n = feature_map.shape
if conv_x >m | conv_y>n:
return
for i in range(0,m - conv_x+1):
for j in range(0,n-conv_y+1):
new_array = feature_map[i:i+conv_x,j:j+conv_y]
new_data = new_array * mask_conv
result_featureMap[i][j] = new_data.sum()
print('r = ')
print(result_featureMap)
return result_featureMap
ok = conv(lis_arry,conv_mask,padding ,step)
python版本:3.5