神经网络中关于padding的理解
对于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的理解相关推荐
- 神经网络中Batch Size的理解
神经网络中Batch Size的理解 直观的理解: Batch Size定义:一次训练所选取的样本数. Batch Size的大小影响模型的优化程度和速度.同时其直接影响到GPU内存的使用情况,假如你 ...
- 【神经网络】神经网络中的矩阵的理解
在<深度学习入门:基于Python的理论与实现>书中,看到讲解矩阵的章节,加深了我对矩阵的理解. 脱离应用理解数学是很难的.将矩阵放在深度学习的环境里可以较好的理解矩阵的含义. 这里假设你 ...
- xml文件 卷积神经网络_理解卷积神经网络中的输入与输出形状(Keras实现)
即使我们从理论上理解了卷积神经网络,在实际进行将数据拟合到网络时,很多人仍然对其网络的输入和输出形状(shape)感到困惑.本文章将帮助你理解卷积神经网络的输入和输出形状. 让我们看看一个例子.CNN ...
- (pytorch-深度学习系列)卷积神经网络中的填充(padding)和步幅(stride)
卷积神经网络中的填充(padding)和步幅(stride) 之前写过一篇blog,描述CNN网络层的输入和输入尺寸的计算关系,但是并没有描述的很全面,这里全面描述了影响输出尺寸的两个超参数paddi ...
- 【TensorFlow】TensorFlow从浅入深系列之十二 -- 教你深入理解卷积神经网络中的池化层
本文是<TensorFlow从浅入深>系列之第12篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...
- 【TensorFlow】TensorFlow从浅入深系列之十一 -- 教你深入理解卷积神经网络中的卷积层
本文是<TensorFlow从浅入深>系列之第11篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...
- PNAS | 理解单个神经元在深度神经网络中的作用
本次报道论文为发表于PNAS的Understanding the role of individual units in a deep neural network.众所周知,深度神经网络擅长查找可解 ...
- 三个变量中怎么找出中间值_一文理解神经网络中的偏差和方差
在深度学习中,数据过拟合,欠拟合的问题很常见,先总结一下:过拟合称为高方差,欠拟合称为高偏差. 可能只看偏差,方差不是很理解,下面先来个百度百科看一下. 偏差(统计学概念) 偏差又称为表观误差,是指个 ...
- 【白话理解神经网络中的“损失函数”——最小二乘法和极大似然估计法】
目录 写在前面的话 理解损失函数 最小二乘法 最大似然估计法(统计方法) 写在前面的话 "损失函数"是如何设计出来的?直观理解"最小二乘法"和"极大似 ...
最新文章
- SAP Distribution Model初探
- 2.1.2 何为真值,何为机器数?
- python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例
- React开发(201):react代码分割之打包导出
- html转义 在线,HTML转义工具 [Javascript版]
- 上古卷轴 java_上古卷轴II-双帝传奇
- OPTIRRA研究: TNF拮抗剂维持期优化减量方案[EULAR2015_SAT0150]
- 面试官问:MySQL的自增 ID 用完了,怎么办?
- 【正点原子MP157连载】第二十五章 I2C光照接近传感器实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
- Python全栈开发实战学习14
- Linux tac命令
- Java操作Excel - Easy Excel
- Opencv实战(二) 文字区域的提取 (VS2013 + C++)
- android安全开发_现代android安全开发
- [Go WebSocket] 为什么我选用Go重构Python版本的WebSocket服务?
- 实训六:Web方式管理交换机
- 什么是平台无关性,Java是如何做到平台无关的
- 区块链安全100问 |​ 第五篇:黑客通过这些方法盗取数字资产,看看你是否中招?
- 怀旧服野外pvp最多的服务器,魔兽世界怀旧服韩服开始合服拯救鬼服 野外PVP精彩了...
- C#实现简体繁体之间转换
热门文章
- Android系统 proc—cpufreq 目录,查看 CPU 电压,检查省电体质
- python求乘积_Python实现求笛卡尔乘积的方法
- Android 高德地图在地图上面添加背景图和设置滑动范围
- html 文字段后间距,css怎么设置段前段后的距离?
- FlatList使用示例包含RefreshControl
- 1019: 谁是老二(结构体)
- python可视化窗口编程-python界面编程,python可视化窗口编程
- jquery利用雅虎YQL 做中间层进行跨域请求
- txt文本转azw3(kindle格式)
- uniapp canvas 画图失败