先看一个二维滤波器,如下图所示。滤波器是一个3x3的矩阵,输入数据是一个5x5的矩阵。输入矩阵中的红色方框(下文称之为滑窗)是一个激活区域(activeregion),这个区域的大小与滤波器大小一致,均为3x3方阵。激活区域与滤波器对应系数相乘并相加即获得对应的输出(这里是矩阵元素对应相乘相加,不是矩阵乘法)。紧接着,滑窗右移一格,得到新的激活区域,再次与滤波器对应元素相乘相加获得第2个输出。这里滑窗的步进为1。当滑窗右侧边缘与输入数据右侧边缘重合时,滑窗重新回到输入数据最左侧边缘并下移一格。由此可见,滑窗在两个维度都会移动。
滤波与卷积本质上是一致的。回想一维滤波器或者说一维卷积运算。输入数据在时间维度上依次进入卷积窗口。当前的输出取决于滤波器系数和卷积窗内的输入数据,执行的运算也是相乘相加。至此,可以看到二维滤波器只是卷积窗由一维变为二维,同时,输入数据也由一维变为二维。 相乘相加是否可以转换成矩阵乘呢?答案是肯定的。以下图为例。首先,我们把每个激活区域的输入数据取出来由二维矩阵变为一维行向量。滑窗步进为1,共4个激活区域,所以可得到4个一维向量。这4个一维向量构成一个4x9的二维矩阵。其次,我们将滤波器按照先行再列的方式“拉直”,构成一个一维列向量,这个列向量维度为9x1。显然,这时4个激活区域构成的矩阵与滤波器系数构成的列向量是可乘的,满足了矩阵乘法的要求。之后就可以直接执行矩阵乘法获得输出结果。
cnn中的卷积运算本质上就算二维滤波器,是矩阵对应元素相乘相加。但在工程实现时,则将其采用上图所示方法转变为矩阵乘法,从而提高运算效率。
原文标题:卷积神经网络中会什么会有矩阵乘法?
文章出处:【微信公众号:lauren的fpga】欢迎添加关注!文章转载请注明出处。
富士通推出具有并行接口的新型8Mbit FRAMMB85R8M2TA
数字功放芯片-NTP8808的特性介绍
Vivitek(丽讯)新品连发 演绎激光三重奏
智能变电站的相关知识
汽车进入大数据时代 国内车联网发展任重道远
卷积神经网络中的矩阵乘法
集成电路封装的分类与演进
美高森美提供全新低功耗、高功能交换芯片系列 简化工业网络向以太网的迁移
ESP32-S3 ADC架构外设的深入分析
数显糖度计的应用
搭载 i7-11375H微星 Stealth 15M 跑分曝光:睿频 5GHz,单核性能超 i7-10750H 46%
87%超高屏占比!华为MateBook D 15 锐龙版全面屏轻薄本发布
蓝牙耳机和有线耳机,人们是如何选择的
大陆存储器消费实力不容小觑 联想采购量与惠普相当
激光雷达:资本追捧竞争加剧,量产难题亟待解决
金属网格技术崛起,触控面板面临新的挑战
300PLCmpi转以太网通过S7300与 OPC通信
世界各国都将发展人工智能作为提升国家竞争力的重要战略
万兆单模光模块SFP-10G-LR:光通信领域的中流砥柱
ChatGPT/GPT的原理及ChatGPT的技术架构解析