卷积的三种模式:full,same,valid

这三种模式是对卷积核移动范围的不同限制

1、full mode

橙色部分为image(大小为N1*M1),蓝色部分为filter(大小为N2*M2),full模式下输出矩阵大小为(N1+N2-1)*(M1+M2-1)

即从filter右下角一个单元与image的第一个单元重叠开始计算,依次将filter的右下角单元与image的每一个单元重叠并计算。

2、same mode

将filter中心与image左上角单元重合,并依次与image的每个单元重合计算,最终输出结果为N1*M1

3、valid mode

filter在image内部进行卷积运算

C语言代码实现

#include<stdio.h>#define N1 3
#define M1 3
#define N2 3
#define M2 3//x需要运算的矩阵
//y卷积核
//z(full模式的输出)
//z2(same模式的输出)
int x[N1][M1];//需要运算矩阵
int y[N2][M2];//卷积核
int z[N1+N2-1][M1+M2-1];//full模式下的输出
int z2[N1][M1];//same模式下的输出void conv2(int x[N1][M1],int y[N2][M2],int z[N1+N2-1][M1+M2-1],int z2[N1][M1])
{int i,j;int n,m;for(i=0; i<N1+N2-1; i++)for(j=0; j<M1+M2-1; j++){int temp = 0;for(m=0; m<N1; m++)for(n=0; n<M1; n++)if((i-m)>=0&&(i-m)<N2&&(j-n)>=0&&(j-n)<M2)temp+=x[m][n]*y[i-m][j-n];z[i][j]=temp;}for(i=0; i<N1; i++)for(j=0; j<M1; j++){z2[i][j]=z[i+(N2-1)/2][j+(M2-1)/2];}}int main()
{int i,j;printf("请输入需要运算的矩阵:\n");for(i=0;i<N1;i++){for(j=0;j<M1;j++){scanf("%d",&x[i][j]);}  }printf("请输入卷积核:\n");for(i=0;i<N2;i++){for(j=0;j<M2;j++){scanf("%d",&y[i][j]);}  }conv2(x,y,z,z2);//卷积运算 printf("same model下结果输出:\n");for(i=0;i<N1;i++){for(j=0;j<M1;j++){printf("%d ",z2[i][j]);}    printf("\n");}return 0;} 

矩阵卷积运算的三种方式及C语言实现相关推荐

  1. python中的除法运算_python中矩阵除法运算的三种实现方法

    介绍过python矩阵的乘法运算,numpy库中虽然乘法是矩阵运算的主要运算,但是numpy作为python中实现矩阵运算的好工具,也是可以轻松实现除法计算的,本文python中矩阵除法的三种实现方法 ...

  2. 图神经网络(一)图信号处理与图卷积神经网络(1)矩阵乘法的三种方式

    图神经网络(一)图信号处理与图卷积神经网络(1)矩阵乘法的三种方式 1.1 矩阵乘法的三种方式 参考文献   图信号处理(Graph Signal Processing,GSP) 1是离散信号处理(D ...

  3. python中两个集合的运算并交补_三种方式实现 Python 中的集合的交、并、补运算...

    文章目录 三种方式实现 Python 中的集合的交.并.补运算 一 背景 集合这个概念在我们高中阶段就有所了解,毕业已多年,我们一起回顾一下几个集合相关的基本概念吧? 集合是指具有某种特定性质的具体的 ...

  4. 基于unet神经网络上采样中的的三种方式的理解

    关于前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容中的一个知识点-上采样. 一.基于unet神经网络上采样中的的三种方式的理解 ...

  5. Python找出列表中出现次数最多的元素三种方式

    通过三种方式给大家介绍,具体详情如下所示: 方式一: 原理:创建一个新的空字典,用循环的方式来获取列表中的每一个元素,判断获取的元素是否存在字典中的key,如果不存在的话,将元素作为key,值为列表中 ...

  6. android double转string_Java 数组转 List 的三种方式及对比

    来源:Java数组转List的三种方式及对比_五道口-CSDN博客 作者:大脑补丁 前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解 ...

  7. 面试官 | Java转List三种方式,你说说吧。我。。懵逼。啥时候有三种了

    Hi 我是小小,我们又见面了,本文主要介绍Java数组转List的三种方式以及对比 前言 本文主要介绍Java中数组转为List的三种情况的优劣对比,以及应用场景. 第一种 通过 Arrays.asL ...

  8. 3.3 keras模型构建的三种方式

    3.3 keras模型构建的三种方式 1. 使用tf.keras.Sequential按层顺序构建模型,代码示例: model = Sequential()#卷积层conv_1_1 model.add ...

  9. 【大数据开发】SparkCore——进阶算子、Action算子、查看分区数的三种方式

    源代码中的大写V,指的是value rdd.getNumberPartitions获取分区数量 Transformation算⼦全都是RDD[U,T]类型的 Action算子的返回值一般情况下不会是R ...

  10. 盛大游戏技术总监徐峥:Unity引擎使用的三种方式

    在5月13日Unite 2017 案例分享专场上,盛大游戏技术总监徐峥分享了使用Unity引擎的三种方式,以下为详细内容: 大家好,我先简单介绍一下我自己,我是盛大游戏的技术总监徐峥.我今天想分享的主 ...

最新文章

  1. 广西卫生职业技术学院计算机考试,广西卫生职业技术学院单招2021年春招分数线...
  2. 程序开发中那些莫名奇妙的bug
  3. 9.2.4 .net core 通过ViewComponent封装控件
  4. 关于Plos one 和 SR
  5. Python提升“技术逼格”的6个方法
  6. 说下网鼎杯第四场的双色块
  7. c语言标准输入输出ppt,c语言输入输出语句PPT
  8. C#委托的异步调用[转]
  9. bootstrap入门
  10. 质量和品质的区别_议价采购,招标采购,比价采购的区别是什么?一文看懂?...
  11. Windows vCenter 6.5升级 VUM的安装
  12. c#自带类实现的多文件压缩和解压
  13. cad画多段线时不显示轨迹_cad画多段线时不显示轨迹_CAD画的线段显示不出来的解决方法...
  14. 城市公交线路查询系统mysql_公交车路线查询系统后台数据库设计
  15. 戴尔服务器raid用联想硬盘吗,戴尔服务器安装centons系统硬盘格式是raid还是ahci...
  16. 鸿蒙系统(HarmonyOS)应用开发入门篇
  17. spring 事务回调
  18. 教程 | 扁平物体的摄影测量重建方案
  19. 微信小程序实现运动步数排行(可删除)
  20. Linux Crontab 定时任务列子

热门文章

  1. 让HTML播放器使用指定ua,chimee-mobile-player
  2. 微信小程序实时音视频功能简析(live-pusher与live-player)
  3. opencv+python图像匹配——模版匹配、特征点匹配
  4. QComboBox下拉框
  5. oppo人脸识别解锁黑屏_opporeno4有屏幕指纹识别吗?支持人脸识别解锁吗
  6. 软件界面设计思想方法
  7. ISO/IEC27000系列标准研究
  8. 计算机无法识别打印机usb,win10电脑不识别打印机usb设备怎么回事_win10无法识别usb打印机如何处理-win7之家...
  9. 特种期货开户交易权限开通认定标准
  10. MATLAB求解线性规划问题