当前位置: 首页 > ops >正文

两个矩阵的卷积运算

我们要计算两个矩阵的卷积。卷积操作在图像处理、信号处理等领域很常见。这里我们以二维离散卷积为例。
卷积操作的基本步骤:

  1. 将卷积核翻转180度(即旋转180度,也可以先沿x轴翻转再沿y轴翻转)。
  2. 将翻转后的卷积核覆盖在输入矩阵上,从左上角开始,每次移动一个位置。
  3. 在每个位置上,将卷积核与输入矩阵对应元素相乘,然后将乘积求和,得到输出矩阵在该位置的值。
  4. 重复步骤2和3,直到覆盖整个输入矩阵。

注意:边界处理通常有几种方式,比如忽略边界(输出尺寸变小)、补零等。这里我们默认使用“valid”模式,即只在卷积核完全覆盖输入矩阵的位置计算,输出尺寸会变小;如果需要全尺寸输出,则需要在输入矩阵周围补零(“same”模式)。

但实际计算时,我们通常使用更简便的方法:直接滑动相乘相加,而不显式翻转,因为离散卷积中翻转180度后的卷积核滑动相乘就相当于翻转后的点积。但注意,如果按照严格的数学定义,是需要翻转的。不过在图像处理中,我们通常使用对称的卷积核(如高斯核),翻转后不变,所以可以忽略翻转步骤。

但是,为了严谨起见,我们还是按照数学定义进行:先翻转卷积核,然后再滑动点积。

例:计算矩阵A和卷积核K的卷积
设矩阵A为:
A = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]

卷积核K为:
K = [[1, 0],
[0, -1]]

注意:在卷积操作中,卷积核是要翻转的,所以先翻转K(旋转180度)得到:
K_rotated = [[-1, 0],
[0, 1]]

现在,我们将翻转后的卷积核在矩阵A上滑动。按照valid模式(即卷积核完全覆盖在A上时),输出矩阵的大小为 (3-2+1) x (3-2+1) = 2x2。

具体计算:
第一步:覆盖A的左上角2x2区域:
[1,2]
[4,5]
与翻转后的卷积核(K_rotated)对应位置相乘并求和:
(1 * (-1) + 2 * 0 + 4 * 0 + 5 * 1) = (-1) + 0 + 0 + 5 = 4

第二步:向右移动一个位置,覆盖区域:
[2,3]
[5,6]
计算: (2 * (-1) + 3 * 0 + 5 * 0 + 6 * 1) = -2 + 0 + 0 + 6 = 4

第三步:向下移动一个位置,覆盖区域:
[4,5]
[7,8]
计算: (4 * (-1) + 5 * 0 + 7 * 0 + 8 * 1) = -4 + 0 + 0 + 8 = 4

第四步:再向右移动,覆盖区域:
[5,6]
[8,9]
计算: (5 * (-1) + 6 * 0 + 8 * 0 + 9 * 1) = -5 + 0 + 0 + 9 = 4

因此,输出矩阵为:
[[4, 4],
[4, 4]]。

求矩阵A与矩阵B的卷积,先将B沿X轴翻转,然后沿Y轴翻转,然后将矩阵A左边一列和上边一列补0,然后对应位相乘并相加,得到某一位的结果。

http://www.xdnf.cn/news/13963.html

相关文章:

  • 一个用专业知识库与多层RAG打造调研报告的Agent
  • vue常用框架,及更新内容
  • orb_slam--安装配置
  • C语言二维数组的使用详解
  • C++ —— STL容器 —— string的模拟实现
  • 北京大学:AI+Agent与Agentic+AI的原理与应用(适合科研从业者和技术爱好者阅读)
  • 宝塔面板WordPress中使用Contact Form 7插件收不到邮件的解决方法
  • 【AI论文】MiniCPM4:在终端设备上实现超高效的大型语言模型(LLMs)
  • 突破AI瓶颈:基于实时感知的智能选路实现智算负载均衡优化
  • 【教程】Android(AOSP)Framework开发/ROM定制快速教程
  • 本地部署 DeepSeek-R1-0528 超大语言模型全流程指南(含量化版优化实操)
  • HBase 安装与简单操作指南
  • 深入 Java 泛型:高级应用与实战技巧
  • 深度学习神经网络架构Transformer深刻理解
  • 论文略读:Ask, and it shall be given: On the Turing completeness of prompting
  • OpenCV 鼠标操作与响应之绘制ROI提取图像
  • antd vue a-range-picker如何设置不能选择当前和之后的时间,包含时分秒
  • SSM框架实现学生管理系统的需求分析与设计详解
  • 智能聊天AI Top10 排行榜 - 2025年05月
  • 牛客小白月赛118
  • 计算机图像处理:从像素到卷积与池化的深度解析
  • 护城河尚浅,理想汽车驶入慢车道
  • Java Stream API 在企业开发中的实战心得:高效、优雅的数据处理
  • 包含各种扁平化UI套件的psd适用于博客电商类移动端网站项目
  • 论文笔记 <交通灯><多智能体>CoLight管理交通灯
  • 【Golang面试题】什么是写屏障、混合写屏障,如何实现?
  • 【Linux】git基础操作
  • 【DeepSeek】移植计划
  • 110.将临时账号切换为登录后的账号
  • dbus从理论到实践教程