学习笔记-使用Python对两个矩阵进行卷积

钟会 发布于 2025-11-03 130 次阅读


对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)

希望对您能够有所帮助

好好爱自己
最后更新于 2025-11-04