写在前面:所有关于深度学习的基础知识均为鄙人的笔记分享,很多内容摘自大神们的博客或论文,因时间太长记不清了分别来自哪里。若有侵权,请联系鄙人邮箱min.wenfang@qq.com

目前,卷积的计算大多采用间接计算的方式,主要有以下三种实现方式:

  • im2col + GEMM。 caffe等很多框架中都使用了这种计算方式,原因是将问题转化为矩阵乘法后可以方便的使用很多矩阵运算库(如MKL、openblas、Eigen等)。
  • FFT变换。 时域卷积等于频域相乘,因此可将问题转化为简单的乘法问题。
  • Winograd。 这种不太熟悉,据说在GPU上效率更高。 NNPACK就是FFT和Winograd方法的结合。
  • cudnn库函数

上面三种方法执行效率都还不错,但对内存占用比较高,因为需要存储中间结果或者临时辅助变量。

im2col + GEMM 原理

darknet中应用了与caffe一样的函数

下面传有两个动图形象说明

注意!!!!:

1 多通道多卷积操作计算过程

如图5,输入图像layer m-1有4个通道,同时有2个卷积核w1和w2。对于卷积核w1,先在输入图像4个通道分别作卷积,再将4个通道结果加起来得到w1的卷积输出;卷积核w2类似。所以对于某个卷积层,无论输入图像有多少个通道,输出图像通道数总是等于卷积核数量!

缩进对多通道图像做1x1卷积,其实就是将输入图像于每个通道乘以卷积系数后加在一起,即相当于把原图像中本来各个独立的通道“联通”在了一起。

2 卷积核计算过程

1、首先,假设输入图片大小是 224*224*3(224是图像宽或高,3是三个通道,也就是RGB三种)

2、然后,假设conv1层的是 7*7*96 (7*7是卷积核的size k,96是卷积核的个数n),stride = 2;

3、所以conv1得到的结果是110*110*96([(w-k+pad)/stride+1] * [(h-k+pad)/stride+1] * n) (这个110来自于 (224-7+pad)/2+1 = 110 ,这个pad是我们常说的填充,也就是在图片的周围补充像素,这样做的目的是为了能够整除,除以2是因为2是图中的stride);

4、再做一次池化pooling,得到pool1, 池化的核的大小是3*3,所以池化后图片的维度是55*55*96 ( (110-3+pad)/2 +1 =55 );

深度学习(二)卷积计算相关推荐

  1. 【深度学习】卷积计算与训练模型的几种方法

    卷积计算 全连接层和卷积层的根本区别在于:全连接层(Dense层)从输入空间中学到的是全局模式,而卷积层学到的是局部模式. 因为这个特性,所以卷积神经网络有两个有趣的性质: 平移不变性:卷积神经网络在 ...

  2. 深度学习之卷积神经网络(Convolutional Neural Networks, CNN)(二)

    前面我们说了CNN的一般层次结构, 每个层的作用及其参数的优缺点等内容.深度学习之卷积神经网络(Convolutional Neural Networks, CNN)_fenglepeng的博客-CS ...

  3. 深度学习~卷积神经网络(CNN)概述

    目录​​​​​​​ 1. 卷积神经网络的形成和演变 1.1 卷积神经网络结构 1.2 卷积神经网络的应用和影响 1.3 卷积神经网络的缺陷和视图 1.3.1 缺陷:可能错分 1.3.2 解决方法:视图 ...

  4. 机器学习——深度学习之卷积神经网络(CNN)——AlexNet卷积神经网络结构

    目录 一.AlexNet卷积神经网络结构模型 1.数据库ImageNet 2.AlexNet第一层卷积层 二.AlexNet卷积神经网络的改进 1.非线性变化函数的改变--ReLU 2.最大池化(Ma ...

  5. DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上的应用+距离运算

    在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度.feeds场景下Doc和Doc的语义相似度.机器翻译场景下A句子和B句子的语义相似度等等.本文通过介绍DSSM.C ...

  6. 深度学习二(Pytorch物体检测实战)

    深度学习二(Pytorch物体检测实战) 文章目录 深度学习二(Pytorch物体检测实战) 1.PyTorch基础 1.1.基本数据结构:Tensor 1.1.1.Tensor数据类型 1.1.2. ...

  7. 知识图谱论文阅读(八)【转】推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

    学习的博客: 推荐系统遇上深度学习(二十六)–知识图谱与推荐系统结合之DKN模型原理及实现 知识图谱特征学习的模型分类汇总 知识图谱嵌入(KGE):方法和应用的综述 论文: Knowledge Gra ...

  8. Kaggle深度学习与卷积神经网络项目实战-猫狗分类检测数据集

    Kaggle深度学习与卷积神经网络项目实战-猫狗分类检测数据集 一.相关介绍 二.下载数据集 三.代码示例 1.导入keras库,并显示版本号 2.构建网络 3.数据预处理 4.使用数据增强 四.使用 ...

  9. 深度学习-conv卷积

    深度学习-conv卷积 过滤器(卷积核) 传统的图像过滤器算子有以下几种: blur kernel:减少相邻像素的差异,使图像变平滑. sobel:显示相邻元素在特定方向上的差异. sharpen : ...

  10. 旷视首席科学家孙剑:深度学习变革视觉计算

    https://www.toutiao.com/i6714941914564526596/ 孙剑从视觉智能.计算机摄影学以及AI计算3个方面介绍了计算机视觉研究领域的变革. 作者 | 张栋 AI科技评 ...

最新文章

  1. 【数据库】mysql报错 编码码1130 和错误码1146
  2. 2019.03.10----LINUX学习笔记
  3. Leetcode-53:最大子序和
  4. Promise之异步调用
  5. asp.net电子商务开发实战 视频 第二讲 (下)
  6. mysql根据时间回退_MySQL 中的日期时间类型
  7. ARM处理器上电/复位操作
  8. 第八回 新年晚会艺压群芳 文理分科三人聚首[林大帅作品选]
  9. 竞态条件的赋值_Go 译文之竞态检测器 race
  10. BZOJ 2339 [HNOI2011]卡农
  11. 正式通知!低学历恭喜了!每人补贴8000元,限本科以下学历,政策扶持,名额有限,速看...
  12. matlab中ode指令,matlab中ode5函数编写.doc
  13. visio 中取消 交叉连接线的拱形的方法
  14. [原创]数字转换中文大写金额
  15. 指针:C语言二级指针与二维数组
  16. Origin1——设置坐标轴、字体、标签等
  17. Linux 下如何添加一个普通用户,并给予用户root权限
  18. 真c++ 从二叉树到红黑树(6)之红黑树RedBlack
  19. 基于UCOS-III的雷电传奇自制小游戏————秉火STM32F103-指南者;PS2手柄
  20. MySQL 数据表优化设计(六):id 该如何选择数据类型?

热门文章

  1. Vivado官网获取License
  2. 基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)
  3. 中小站长如何防范黑客攻击,避免网站遭受损失?
  4. 市面上有哪些自动生成报表的工具?
  5. 数据结构与算法【Java】06---七大查找算法总结
  6. 计算机桌面颜色比较暗,电脑屏幕变色了怎么调回来 电脑屏幕变暗淡的原因有哪些...
  7. 利用Gitee创建Vnote免费图床 (实用)
  8. Burp抓包经常出现detectportal.firefox.com解决办法(附图)
  9. 微信搜一搜,不可忽视的超级流量池
  10. matlab实现基于暗通道先验(DCP)的单图像去雾