4.1卷积神经网络

觉得有用的话,欢迎一起讨论相互学习~Follow Me

1.6多通道卷积

原理

  • 对于一个多通道的卷积操作,可以将卷积核设置为一个立方体,则其从左上角开始向右移动然后向下移动,这里设置Padding模式为VALID,步长为1.
  • 注意:卷积核中的颜色通道数必须与原始图像的颜色通道数一致。
  • 如果想要只对红色通道有用的垂直边界,则设置卷积核为:
  • 大小为\(3*3*3\)

    识别垂直边界过滤器
  • 如果想要对图像所有通道识别垂直边界,则设置卷积核为:
  • 大小为\(3*3*3\)

    多通道多卷积核

  • 上文描述了对于多通道单卷积核的卷积操作,如果想要不仅识别图像的垂直边界还想识别图像的水平边界则需要另外构造一个水平边界检测卷积核。
  • 此时可以通过两个不同的卷积核得到两个不同的\(4*4\)特征图,将这两个特征图堆叠在一起,则得到了一个\(4*4*2\)的输出立方体。2这个维度来自于两个不同的卷积核

    多通道特征图大小公式

    \[(n*n*n_c)原始图像*(f*f*n_c)卷积核大小=\lfloor\frac{(n+2p-f)}{s}+1\rfloor*\lfloor\frac{(n+2p-f)}{s}+1\rfloor*{n_c}^{'}\]

  • 其中n为原始图像大小,\(n_c\)为原始图像通道数,p为Padding填充维度,f为卷积核大小,s为步长
  • 当出现得到的结果不是整数时,可以采用向下取整的方式使其维度为整数
  • 此处的卷积核意味着一组相同大小的卷积核,不止一个
  • \(n_c\)表示通道个数,原始图片和卷积核中通道个数必须相等。\({n_c}^{'}\)表示卷积核个数


1.7构造单层卷积层

  1. 对于一张\(6*6*3\)的3通道原始图片,经过一个\(3*3*3\)的3通道卷积核得到一个\(4*4\)的图片。然后通过Python的广播机制,将16个像素点都加上一个偏置\(b_1\)。得到的结果通过非线性的激活函数ReLU的得到最终的图片像素点。
  2. 对于第二个卷积核,使用相同的步骤,也得到一个\(4*4\)的特征图。然后把这两个矩阵堆叠起来,最终得到一个\(4*4*2\)的矩阵
  3. 对于维度,通过卷积层中两个卷积核使一个\(6*6*3\)的图片变成一个\(4*4*2\)的特征图。即:卷积层中卷积核的个数对应了生成的特征图中特征的个数

问题

  • 如果一个卷积层中有10个卷积核,卷积核的大小为\(3*3*3\),则加上每个卷积核的偏置一共是\(10*28=280\)个参数。卷积核的参数量和原始图片不相关,即使很大的图片使用以上卷积层,参数量均为280.

总结

[DeeplearningAI笔记]卷积神经网络1.6-1.7构造多通道卷积神经网络的更多相关文章

  1. [DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成

    5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.5不同类型的循环神经网络 上节中介绍的是 具有相同长度输入序列和输出序列的循环神经网络,但是对于很多应用\(T_{x}和 ...

  2. [DeeplearningAI笔记]卷积神经网络4.6-4.10神经网络风格迁移

    4.4特殊应用:人脸识别和神经网络风格转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.6什么是神经网络风格转换neural style transfer 将原图片作为内容图片Cont ...

  3. [DeeplearningAI笔记]卷积神经网络1.2-1.3边缘检测

    4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.2边缘检测示例 边缘检测可以视为横向边缘检测和纵向边缘检测如下图所示: 边缘检测的原理是通过一个特定构造的卷积核对原始图 ...

  4. [DeeplearningAI笔记]卷积神经网络2.5-2.7 Network in Network/1*1卷积/Inception网络/GoogleNet

    4.2深度卷积网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 Inception网络 --Szegedy C, Liu W, Jia Y, et al. Going deepe ...

  5. [DeeplearningAI笔记]神经网络与深度学习2.11_2.16神经网络基础(向量化)

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.11向量化 向量化是消除代码中显示for循环语句的艺术,在训练大数据集时,深度学习算法才变得高效,所以代码运行的非常快十分重要.所以在深度学 ...

  6. 深度学习原理与框架-Tensorflow卷积神经网络-卷积神经网络mnist分类 1.tf.nn.conv2d(卷积操作) 2.tf.nn.max_pool(最大池化操作) 3.tf.nn.dropout(执行dropout操作) 4.tf.nn.softmax_cross_entropy_with_logits(交叉熵损失) 5.tf.truncated_normal(两个标准差内的正态分布)

    1. tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME')  # 对数据进行卷积操作 参数说明:x表示输入数据,w表示卷积核, stride ...

  7. [DeeplearningAI笔记]序列模型1.10-1.12LSTM/BRNN/DeepRNN

    5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.10长短期记忆网络(Long short term memory)LSTM Hochreiter S, Schmidhu ...

  8. CNN中各类卷积总结:残差、shuffle、空洞卷积、变形卷积核、可分离卷积等

    CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量.我下面会对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的工作中 ...

  9. 神经网络的Python实现(一)了解神经网络

    网络上深度学习相关博客教程质量参差不齐,很多细节很少有文章提到,所以本着夯实深度学习基础的想法写下此系列博文. 本文会从神经网络的概述.不同框架的公式推导和对应的基于numpy的Python代码实现等 ...

随机推荐

  1. Ubuntu环境下No module named '_tkinter'错误的解决

    在Ubuntu环境下运行下面代码: import matplotlib as plt 出现以下错误: No module named '_tkinter' 解决方法: sudo apt-get ins ...

  2. 软工实践-Alpha 冲刺 (9/10)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 已经解决登录注册等基本功能的界面. 完成非功能的主界面制作 ...

  3. python处理时间相关的方法(汇总)

    记录python处理时间的模块:time模块.datetime模块和calendar模块. python版本:2.7 在介绍模块之前,先说下以下几点: 1.时间通常有这几种表示方式: a.时间戳:通常 ...

  4. 关于解决乱码问题的一点探索之一(涉及utf-8和GBK)

    在使用Visual Studio 2005进行MFC开发的时候,发现自动添加的注释变成了乱码.像这样: // TODO: ÔÚ´ËÌí¼ÓרÓôúÂëºÍ/»òµ÷ÓûùÀà 还有这样: // ...

  5. js登录界面代码自用

    var btn = document.getElementById("a4"); var usne = document.getElementById("username ...

  6. 关于解决java读取excel文件遇空行抛空指针的问题 !

    关于解决java读取excel文件遇空行抛空指针的问题 ! package exceRead; import java.io.File; import java.io.FileInputStream; ...

  7. sublime text 多行代码注释快捷键

    多行选择后按下ctrl+/ 选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本. Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑.举个栗子:快速选中 ...

  8. (转)elasticsearch5.2.2 压测配置

    1.elasticsearch.yml # ---------------------------------- Cluster ----------------------------------- ...

  9. 用到的C++标准库

    std::set<type>, 模板写的平衡二叉树的集合容器, method: insert, count, std:map<int, string>, 映射和多重映射基于某一 ...

  10. influxdb 命令

    写入数据: curl -X POST -d '[{"name":"foo","columns":["val"],&quo ...