对20×20矩阵和3×3矩阵进行卷积
这次不使用任何第三方库完成,下期可以出个使用第三方库Numpy完成矩阵卷积
由于本人经验的原因,撰写的代码可能有所瑕疵,还请见谅,感谢理解
import random
# 创建20 * 20矩阵
a = [0] * 20
for i in range(20):
a[i] = [0] * 20
for m in range(20):
for n in range(20):
a[m][n] = random.randint(0, 9)
# 创建3 * 3矩阵(卷积核)
b = [0] * 3
for i in range(3):
b[i] = [0] * 3
for m in range(3):
for n in range(3):
b[m][n] = random.randint(0, 9)
# 输出行数 = 输入行数 - 卷积核行数 + 1
# 输出列数 = 输入列数 - 卷积核列数 + 1
h = len(a) - len(b) + 1
l = len(a[0]) - len(b[0]) + 1
# 输出矩阵
c = [0] * h
for i in range(h):
c[i] = [0] * l
# 进行卷积
for m in range(h):
for n in range(l):
answer = 0
for j in range(3):
for k in range(3):
answer = answer + a[m + j][n + k] * b[j][k]
c[m][n] = answer
#打印结果
print("矩阵:")
for a in a:
print(a)
print('\n')
print("卷积核:")
for b in b:
print(b)
print('\n')
print("输出矩阵:")
for c in c:
print(c)
希望对您能够有所帮助
Comments NOTHING