对于padding的理解分为两个方面,步长为1和步长大于或等于2。
一、当步长大于等于2时,比较容易理解,padding=="same"时,width和height向上取整, 缺少的部分用padding 0 来补足;padding=="valid"时,width和height向下取整, 多余的部分舍弃。以下列代码为例:

from keras.layers import Conv2D,Dense,Flatten
from keras.models import Sequential
model = Sequential()
model.add(Conv2D(filters  = 32,kernel_size = [3,3],strides = [2,2],padding = 'valid',input_shape = [8,8,3]))
model.add(Flatten())
model.add(Dense(units = 10,activation = 'softmax'))
model.compile()
model.fit()
从model.add(Conv2D(filters  = 32,kernel_size = [3,3],strides = [2,2],padding = 'valid',input_shape = [8,8,3]))可以看出,
卷积前,width=8, height=8, channel=3
卷积核为[3, 3], 步长为[2, 2],过滤器数为32

如果padding==“valid”,
width = math.floor((8-3)/2)+1, heigth = math.floor((8-3)/2+1, channel = 32
如果padding==“same”,
width = math.ceil((8-3)/2)+1, heigth = math.ceil((8-3)/2+1, channel = 32
二、当步长等于1时,padding=="valid"时,不作任何处理;当padding=="same"时,保持卷积后的width和height和卷积前一样,缺少的用padding0来补足,这样就可以防止由于卷积导致图像不断缩减。以下列代码为例:

from keras.layers import Conv2D,Dense,Flatten
from keras.models import Sequential
model = Sequential()
model.add(Conv2D(filters  = 32,kernel_size = [3,3],strides = [1,1],padding = 'valid',input_shape = [8,8,3]))
model.add(Flatten())
model.add(Dense(units = 10,activation = 'softmax'))
model.compile()
model.fit()
从model.add(Conv2D(filters  = 32,kernel_size = [3,3],strides = [1,1],padding = 'valid',input_shape = [8,8,3]))可以看出,
卷积前,width=8, height=8, channel=3
卷积核为[3, 3], 步长为[1, 1],过滤器数为32
如果padding==“valid”,
width = 8-3+1, heigth = 8-3+1, channel = 32
如果padding==“same”,
width = 8, heigth = 8, channel = 32

神经网络中关于padding的理解相关推荐

  1. 神经网络中Batch Size的理解

    神经网络中Batch Size的理解 直观的理解: Batch Size定义:一次训练所选取的样本数. Batch Size的大小影响模型的优化程度和速度.同时其直接影响到GPU内存的使用情况,假如你 ...

  2. 【神经网络】神经网络中的矩阵的理解

    在<深度学习入门:基于Python的理论与实现>书中,看到讲解矩阵的章节,加深了我对矩阵的理解. 脱离应用理解数学是很难的.将矩阵放在深度学习的环境里可以较好的理解矩阵的含义. 这里假设你 ...

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

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

  4. (pytorch-深度学习系列)卷积神经网络中的填充(padding)和步幅(stride)

    卷积神经网络中的填充(padding)和步幅(stride) 之前写过一篇blog,描述CNN网络层的输入和输入尺寸的计算关系,但是并没有描述的很全面,这里全面描述了影响输出尺寸的两个超参数paddi ...

  5. 【TensorFlow】TensorFlow从浅入深系列之十二 -- 教你深入理解卷积神经网络中的池化层

    本文是<TensorFlow从浅入深>系列之第12篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

  6. 【TensorFlow】TensorFlow从浅入深系列之十一 -- 教你深入理解卷积神经网络中的卷积层

    本文是<TensorFlow从浅入深>系列之第11篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

  7. PNAS | 理解单个神经元在深度神经网络中的作用

    本次报道论文为发表于PNAS的Understanding the role of individual units in a deep neural network.众所周知,深度神经网络擅长查找可解 ...

  8. 三个变量中怎么找出中间值_一文理解神经网络中的偏差和方差

    在深度学习中,数据过拟合,欠拟合的问题很常见,先总结一下:过拟合称为高方差,欠拟合称为高偏差. 可能只看偏差,方差不是很理解,下面先来个百度百科看一下. 偏差(统计学概念) 偏差又称为表观误差,是指个 ...

  9. 【白话理解神经网络中的“损失函数”——最小二乘法和极大似然估计法】

    目录 写在前面的话 理解损失函数 最小二乘法 最大似然估计法(统计方法) 写在前面的话 "损失函数"是如何设计出来的?直观理解"最小二乘法"和"极大似 ...

最新文章

  1. SAP Distribution Model初探
  2. 2.1.2 何为真值,何为机器数?
  3. python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例
  4. React开发(201):react代码分割之打包导出
  5. html转义 在线,HTML转义工具 [Javascript版]
  6. 上古卷轴 java_上古卷轴II-双帝传奇
  7. OPTIRRA研究: TNF拮抗剂维持期优化减量方案[EULAR2015_SAT0150]
  8. 面试官问:MySQL的自增 ID 用完了,怎么办?
  9. 【正点原子MP157连载】第二十五章 I2C光照接近传感器实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
  10. Python全栈开发实战学习14
  11. Linux tac命令
  12. Java操作Excel - Easy Excel
  13. Opencv实战(二) 文字区域的提取 (VS2013 + C++)
  14. android安全开发_现代android安全开发
  15. [Go WebSocket] 为什么我选用Go重构Python版本的WebSocket服务?
  16. 实训六:Web方式管理交换机
  17. 什么是平台无关性,Java是如何做到平台无关的
  18. 区块链安全100问 |​ 第五篇:黑客通过这些方法盗取数字资产,看看你是否中招?
  19. 怀旧服野外pvp最多的服务器,魔兽世界怀旧服韩服开始合服拯救鬼服 野外PVP精彩了...
  20. C#实现简体繁体之间转换

热门文章

  1. Android系统 proc—cpufreq 目录,查看 CPU 电压,检查省电体质
  2. python求乘积_Python实现求笛卡尔乘积的方法
  3. Android 高德地图在地图上面添加背景图和设置滑动范围
  4. html 文字段后间距,css怎么设置段前段后的距离?
  5. FlatList使用示例包含RefreshControl
  6. 1019: 谁是老二(结构体)
  7. python可视化窗口编程-python界面编程,python可视化窗口编程
  8. jquery利用雅虎YQL 做中间层进行跨域请求
  9. txt文本转azw3(kindle格式)
  10. uniapp canvas 画图失败