在一般的深度学习框架的 conv2d 中,如 tensorflow、mxnet,channel 都是必填的一个参数

在 tensorflow 中,对于输入样本中 channels 的含义,一般是RGB图片,channels的数量是3(R、G、B)。而灰度图是的channels是1;

mxnet 中,一般channels的含义是:每个卷积层中卷积核的数量。

为了更好的理解,下面举个例子。图片来自 吴恩达老师的深度学习课程

假设有一个 6x6x3的图片样本,使用 3x3x3的卷积核。此时输入的 channels 为3。而卷积核中的 in_channels 与需要进行卷积操作的数据channels一致

卷积:27个数字分别与样本对应相乘,在进行求和,得到第一个结果。依次进行,最终得到 4x4 的结果

由于只有一个卷积核,最终得到的结果是 4x4x1,out_channels为1

在实际应用中,都会使用多个卷积核。这里如果再加一个卷积核,就会得到 4x4x2 的结果

总结一下,把上面提到的channels分为三种:

  1. 最初图片的输入样本channels,取决于图片类型,比如RGB;

  2. 卷积操作完成后输出的 out_channels,取决于卷积核的数量。此时的 out_channels 也会作为下一次卷积时的 in_channels;

  3. 卷积核中的 in_channels,刚刚2中已经说了,就是上一次卷积的out_channels,如果是第一次做卷积,就是1中样本图片的 channels

其实在CNN中,搞清楚每一层的传递关系,主要就是height、width的变化情况,以及 channels 的变化情况

在看看 tensorflow 中 tf.nn.conv2d 的 input 和 filter 这两个参数

input : [batch,in_height,in_width,in_channels]

filter : [filter_height,filter_width,in_channels,out_channels]

参考地址:

https://blog.csdn.net/sscc_learning/article/details/79814146

理解卷积神经网络中的channel的更多相关文章

  1. 理解卷积神经网络中的输入与输出形状(Keras实现)

    即使我们从理论上理解了卷积神经网络,在实际进行将数据拟合到网络时,很多人仍然对其网络的输入和输出形状(shape)感到困惑.本文章将帮助你理解卷积神经网络的输入和输出形状. 让我们看看一个例子.CNN ...

  2. 卷积神经网络中的channel 和filter

    在深度学习的算法学习中,都会提到 channels 这个概念.在一般的深度学习框架的 conv2d 中,如 tensorflow .mxnet,channels 都是必填的一个参数. channels ...

  3. 卷积神经网络中的通道 channel

    卷积神经网络中 channels 分为三种:    (1):最初输入的图片样本的 channels ,取决于图片类型,比如RGB, channels=3    (2):卷积操作完成后输出的 out_c ...

  4. CNN笔记:通俗理解卷积神经网络【转】

    本文转载自:https://blog.csdn.net/v_july_v/article/details/51812459 通俗理解卷积神经网络(cs231n与5月dl班课程笔记) 1 前言 2012 ...

  5. 卷积神经网络中的Winograd快速卷积算法

    目录 写在前面 问题定义 一个例子 F(2, 3) 1D winograd 1D to 2D,F(2, 3) to F(2x2, 3x3) 卷积神经网络中的Winograd 总结 参考 博客:blog ...

  6. CNN笔记:通俗理解卷积神经网络

    CNN笔记:通俗理解卷积神经网络 2016年07月02日 22:14:50 v_JULY_v 阅读数 250368更多 分类专栏: 30.Machine L & Deep Learning 机 ...

  7. tensorflow CNN 卷积神经网络中的卷积层和池化层的代码和效果图

    tensorflow CNN 卷积神经网络中的卷积层和池化层的代码和效果图 因为很多 demo 都比较复杂,专门抽出这两个函数,写的 demo. 更多教程:http://www.tensorflown ...

  8. 【转载】 【Tensorflow】卷积神经网络中strides的参数

    原文地址: https://blog.csdn.net/TwT520Ly/article/details/79540251 http://blog.csdn.net/TwT520Ly -------- ...

  9. 1.keras实现-->使用预训练的卷积神经网络(VGG16)

    VGG16内置于Keras,可以通过keras.applications模块中导入. --------------------------------------------------------将 ...

随机推荐

  1. linux中忘记了mysql的root用户的密码怎么办?

    1.vim /etc/my.cnf skip-grant-tables  #取消此行的注释 2.重启mysql systemctl restart mysqld 3.mysql 登陆mysql mys ...

  2. Javascript 入门 document

    JS可以在hmtl中直接插入文本. <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  3. Apache与PHP的配置

    Listen 表示端口号 ServerName 表示域名 <Directory 路径> 表示默认开放的路径 <IfModule dir_module> 表示默认显示的文件名 & ...

  4. Java面向对象的总结

    面向对象的程序设计 1.面向对象 核心:以类的方式组织代码,以对象的方式封装数据 比喻:也就是说类是没有数据的,给了数据之后的类就是对象 封装 继承 多态 2.方法 a.一个方法只有一个返回值,只有一 ...

  5. layoutInflater参数解析与源码分析

    关于LayoutInflater方法,无论是在listview的适配器中,还是在动态添加view的时候,都会出现它的身影,最开始我在看<第一行代码>时,不知道这个方法实际的参数到底指的是什 ...

  6. 【Server】Windows系统安装Tomcat服务器

    安装Tomcat服务器 Tomcat服务器地址:https://tomcat.apache.org/download-80.cgi 当前版本点选8以上版本,最新的可能不稳定,所以选8或者9版本 直接解 ...

  7. Sentry实时应用错误跟踪系统在Kubernetes中私有化部署

    应用错误跟踪系统:对软件系统运行过程中产生的错误日志进行收集从而实现监控告警. 虽然软件错误❌是不可避免的,但是可以降低错误数. 提高对错误的治理能力能让错误带来的损失降到最低 ​

  8. FreeRTOS操作系统工程建立和操作系统的概念

    一.建立工程步骤如下: 二.详细步骤流程如下: 1.新建工程文件夹,然后在里面建立如下几个文件: 2.使用keil5建立工程: a.建立工程: b.添加内核文件: 3.建立文件分组: 4.创建main ...

  9. 作为python开发者,这几个PyCharm 技巧你必须掌握!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取htt ...

  10. beego微信网页授权

    beego.Get("MP_verify_Rj3QAbcdU0MRsyS.txt", func(context *context.Context) { context.Respon ...