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

让我们看看一个例子。CNN的输入数据如下图所示。我们假设我们的数据是图像的集合。

输入的形状

你始终必须将4D数组作为CNN的输入。因此,输入数据的形状为(batch_size,height,width,depth),其中第一维表示图像的batch大小,其他三个维表示图像的各个属性,即高度,宽度和深度。深度就是色彩通道的数量。例如,RGB图像的深度为3,而灰度图像的深度为1。

输出形状

CNN的输出也是4D数组。其中batch大小将与输入batch大小相同,但是图像的其他3个尺寸可能会根据滤波器(filter) ,内核大小(kernel size)和填充值(padding)而变化。

让我们看一下下面的代码片段。

不要在这里被input_shape参数欺骗,以为输入形状是3D,但是在进行训练时必须传递一个4D数组,该数据的形状应该是(batchsize,10,10,3)。由于inputshape参数中没有batch值,因此在拟合数据时可以采用任何batch大小。

而且正如你所见,输出的形状为(None,10,10,64)。第一个维度表示batch大小,目前为"None"。因为网络事先不知道batch大小。拟合数据后,将使用拟合数据时给出的batch大小来代替"None"。

让我们看看另一个代码片段。

在这里,我将inputshape参数替换为batchinput_shape。顾名思义,此参数将事先提供batch大小,并且在拟合数据时你无法提供任何其他batch大小。例如,在本例你必须用batch大小为16的数据来拟合网络。

你可以从上图看到输出形状的batch大小是16而不是None。

在卷积层上附加全连接(Dense)层

我们可以简单地在另一个卷积层的顶部添加一个卷积层,因为卷积的输出维度数与输入维度数相同。

通常,我们在卷积层的顶部添加Dense层以对图像进行分类。但是,Dense层需要形状为(batch_size,units)的数据。卷积层的输出是4D的数组。因此,我们必须将从卷积层接收的输出的尺寸更改为2D数组。

我们可以通过在卷积层的顶部插入一个Flatten层来做到这一点。Flatten层将3维图像变形成一个维。现在我们得到一个2D形状的数组(batchsize,squashedsize),这是Dense层需要的输入形状。

汇总

你始终必须将形状为(batch_size, height, width, depth)的4D数组输入CNN。

CNN的输出数据也是形状(batch_size, height, width, depth)的4D数组。

要在CNN层的顶部添加一个Dense层,我们必须使用keras的Flatten层将CNN的4D输出更改为2D。

欢迎关注磐创博客资源汇总站:http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:http://pytorch.panchuang.net/

理解卷积神经网络中的channel

在一般的深度学习框架的 conv2d 中,如 tensorflow.mxnet,channel 都是必填的一个参数 在 tensorflow 中,对于输入样本中 channels 的含义,一般是RGB ...

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

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

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

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

卷积神经网络中的通道 channel

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

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

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

(转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql

http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...

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

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

卷积神经网络中的channel 和filter

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

python中的输入和输出

输入和输出   输出: 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print('hello, ...

随机推荐

玩转 Linux 系统的方法论

Linus 说“Just for fun”,而我要说“Just for 折腾”.想知道我是怎样折腾 Linux 的,请看下面这个截图: 从这个截图可以看出,我为了“折腾” Linux 系统,在我的电脑 ...

查找n个数字中的最大值

闲来无事,试试用arg_list查找n个数字中的最大者. 又因为本人喜欢模板, 所以就早早的写了以下代码, 没有经过严格测试. /*********************************** ...

Windows 2008如何绑定MAC防范ARP攻击!

Windows 2008如何绑定MAC防范ARP攻击!   阅读(1974)暂无评论时间:2010-11-23 22:52:13   在Windows server 2003时代,通过arp 这命令即 ...

IE8 innerHTML赋值时包含多级HTML标签时的解决方案

var inhtml = ''; var font = document.createElement("font"); var a = document.createElement ...

017_bcp_bulk_openrowset

017_bcp_bulk_openrowset --bcp*********************************************************************** ...

redis入门指南学习笔记

redis的常见命令 set key hello get key incr num get num set foo lorem incr foo hset car price 500 hset car ...

【UVA】10285-Longest Run on a Snowboard(动态规划)

这是一个简单的问题.你并不需要打印路径. 状态方程dp[i][j] = max(dp[i-1][j],dp[i][j-1],dp[i+1][j],dp[i][j+1]); 14003395 10285 ...

紧急求助!配置SMTP插件出错,SMTP connect() failed

http://bbs.csdn.net/topics/390848222 我来挖个坟.我知道问题所在了,只要你们本地或服务器上环境中只要确保开启了php_openssl 跟 php_socket等扩展 ...

大兄dei,早点看清this吧

说道this,可以说是前端中很重要的问题之一了,也是面试或者笔试常考的问题.所以还是早点看清this吧,大兄dei. this是什么?为什么要存在? this关键字是js中最最复杂的机制之一.他被自动 ...

为nginx创建windows服务自启动

1.下载最新版的 Windows Service Wrapper 程序,比如我下载的名称是 "winsw-1.9-bin.exe",然后,把它命名成你想要的名字(比如: &quot ...

xml文件 卷积神经网络_理解卷积神经网络中的输入与输出形状(Keras实现)相关推荐

  1. 理解卷积神经网络中的输入与输出形状 | 视觉入门

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 译者|VK 来源|Towards Data Science 即使我 ...

  2. 多层感知机 深度神经网络_使用深度神经网络和合同感知损失的能源产量预测...

    多层感知机 深度神经网络 in collaboration with Hsu Chung Chuan, Lin Min Htoo, and Quah Jia Yong. 与许忠传,林敏涛和华佳勇合作. ...

  3. (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql

    http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...

  4. 注意力机制 | CNN-LSTM-Attention基于卷积-长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序)

    注意力机制 | CNN-LSTM-Attention基于卷积-长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序) 目录 注意力机制 | CNN-LSTM-Attention基于卷积- ...

  5. 量子遗传算法优化BP神经网络的预测和分类,多输入单输出,多输 入多输出

    量子遗传算法优化BP神经网络的预测和分类,多输入单输出,多输 入多输出 93499615192034876最爱matlab

  6. python输出变量的值使用_如何使用python语言中的输入和输出打印对应的值

    在python设计语言中,输入使用input()方法,而输出使用print()方法:其中,输出方法可以拼接变量,如字符串.数值类型的.下面利用几个实例说明python语言中的输入和输出的用法,操作如下 ...

  7. 神经网络 卷积神经网络_如何愚弄神经网络?

    神经网络 卷积神经网络 Imagine you're in the year 2050 and you're on your way to work in a self-driving car (pr ...

  8. hopfileld神经网络_图卷积神经网络

    大概一个月前,老师给我分的方向是图神经网络.研一已经快过完了,我自己还没有确定好自己的研究方向.只知道自己想做技术,但是具体什么技术并没有想法,既然老师给分了这个方向,再加上自身也觉得图神经网络在推荐 ...

  9. 人工神经网络_用人工神经网络控制猴子大脑,MIT科学家做到了

    机器之心报道 机器之心编辑部 MIT 的三位科学家成功地用自己创建的人工神经网络控制了猴子大脑皮层的神经活动. 三位研究者分别是 MIT 大脑与行为科学系主任 James DiCarlo.MIT 博士 ...

最新文章

  1. Dialog、Toast、Snackbar,你真的了解它们吗?
  2. 优化CSS在网页中的加载方式
  3. 如果我是博客园的产品经理【下】
  4. 计算机网络实验(华为eNSP模拟器)——第十章 Eth-Trunk(链路聚合)
  5. mysql 定时器停止_mysql事件【定时器】
  6. JUnit单元测试笔记
  7. php aura,AuraPHP路由器没有拿起参数
  8. Python绘制决策树的节点
  9. sql azure 语法_将SQL工作负载迁移到Microsoft Azure:服务选择
  10. 阿里巴巴-码出高效+阿里巴巴Java开发手册(华山版)PDF下载
  11. arm-linux 交叉编译toolchain
  12. linux user32.lib,Linux之#pragma的用法
  13. C#使用libVLC制作视频播放器时自定义鼠标事件的捕获或者忽略
  14. 品牌IP打造的实用性教程
  15. 教育孩子,是从小的润雨细无声。纯属个人文学闷骚型。。。
  16. 防止网站被恶意镜像或反向代理方法
  17. HDU 2340 Obfuscation(dp)
  18. 字符串与Date类型相互转换
  19. 密码打马赛克已经不安全了!这款开源的去“马赛克“工具一秒还原
  20. 科技青年 | 训练机器说话20年,他勇闯阿里巴巴宝库

热门文章

  1. struts工作流程
  2. java多线程绘图_菜鸟学Java之 Java2D 多线程绘图
  3. mysql当数据改变时_MySQL中,当update修改数据与原数据相同时会再次执行吗?
  4. Shiro之权限管理的概念
  5. LeetCode 10 正则表达式匹配
  6. Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(三)答案查询
  7. Lunar New Year and Cross Counting
  8. Android 计算布局背景的透明度
  9. Docker_容器命令
  10. 平面内两条线段的位置关系(相交)判定与交点求解