Tensorflow中卷积的padding操作
上海站 | 高性能计算之GPU CUDA培训
正文共975字,2张图,预计阅读时间3分钟。
之前一直对tensorflow的padding一知半解,直到查阅了tensorflow/core/kernels/ops_util.cc中的Get2dOutputSizeVerbose函数,才恍然大悟,下面是具体的介绍:
实际上tensorflow官方API里有介绍!!
根据tensorflow中的conv2d函数,我们先定义几个基本符号
1、输入矩阵 W×W,这里只考虑输入宽高相等的情况,如果不相等,推导方法一样,不多解释。
2、filter矩阵 F×F,卷积核
3、stride值 S,步长
4、输出宽高为 new_height、new_width
当然还有其他的一些具体的参数,这里就不再说明了。
我们知道,padding的方式在tensorflow里分两种,一种是VALID,一种是SAME,下面分别介绍这两种方式的实际操作方法。
new_height = new_width = (W – F + 1) / S (结果向上取整)
也就是说,conv2d的VALID方式不会在原有输入的基础上添加新的像素(假定我们的输入是图片数据,因为只有图片才有像素),输出矩阵的大小直接按照公式计算即可。
new_height = new_width = W / S (结果向上取整)
在高度上需要pad的像素数为:
pad_needed_height = (new_height – 1) × S + F - W
根据上式,输入矩阵上方添加的像素数为
pad_top = pad_needed_height / 2 (结果取整)
下方添加的像素数为
pad_down = pad_needed_height - pad_top
以此类推,在宽度上需要pad的像素数和左右分别添加的像素数为
pad_needed_width = (new_width – 1) × S + F - W
pad_left = pad_needed_width / 2 (结果取整)
pad_right = pad_needed_width – pad_left
至此,关于tensorflow的卷积padding操作介绍完毕,下面是关于此操作的源码(Get2dOutputSizeVerbose函数的部分节选),我也不会用MarkDown,索性直接截图了,以供参考。
原文链接:https://www.jianshu.com/p/05c4f1621c7e
查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:
www.leadai.org
请关注人工智能LeadAI公众号,查看更多专业文章
大家都在看
LSTM模型在问答系统中的应用
基于TensorFlow的神经网络解决用户流失概览问题
最全常见算法工程师面试题目整理(一)
最全常见算法工程师面试题目整理(二)
TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络
装饰器 | Python高级编程
今天不如来复习下Python基础
Tensorflow中卷积的padding操作相关推荐
- CNN中的卷积核及TensorFlow中卷积的各种实现
声明: 1. 我和每一个应该看这篇博文的人一样,都是初学者,都是小菜鸟,我发布博文只是希望加深学习印象并与大家讨论. 2. 我不确定的地方用了"应该"二字 首先,通俗说一下,CNN ...
- Tensorflow中卷积神经网络之卷积层
卷积层:与传统全连接层不同,卷积层中每一个节点的输入只是上一层神经网络的一小块.(试图将神经网络中的每一小块进行更加深入地分析从中得到抽象程度更高的特征) 在卷积层中:1.过滤器(filter)处理的 ...
- Tensorflow中简单的音频识别
本教程将向您展示如何构建可以识别 10 个不同字词的基本语音识别网络.需要注意的是,真正的语音和音频识别系统要复杂得多,但就像用于识别图像的 MNIST,这个基本语音识别网络能够帮助您基本了解所涉及的 ...
- 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
GirlFriend 在复现论文的时候,我发现她不太会将通用数学公式转化为张量运算公式,导致 tensorflow 无法通过并行的方式优化其论文复现代码的运行速率. 这里对给 GirlFriend 讲 ...
- TensorFlow中张量,变量、常量、占位符概念
1.总结TensorFlow中的张量概念 张量:数据结构:多维数组 零阶张量表示标量(scalar),也就是一个数: 一阶张量为向量(vector),也就是一个数组: N阶张量可以理解为一个n维数组: ...
- TensorFlow中padding卷积的两种方式“SAME”和“VALID”
最近在用tensorflow搭建卷积神经网络,遇到了一个比较棘手的问题,我一直理解的padding有两个值,一个是SAME,一个是VALID,如果padding设置为SAME,则说明输入图片大小和输出 ...
- Tensorflow中padding的两种类型SAME和VALID
前面是max_pool第二个参数是卷积核,第三个参数是对应步长, import tensorflow as tf sess=tf.Session() x = tf.constant([[1., 2., ...
- Tensorflow中2D卷积API使用
TF中用于2D卷积操作的api是tf.nn.conv_2d,源码位置位于tensorflow/python/ops/gen_nn_ops.py 接口定义为: conv2d(input, filter, ...
- tensorflow一维卷积输入_tensorflow中一维卷积conv1d处理语言序列的一点记录
工作中用卷积方法进行自然语言处理(NLP)相关任务,用到了tensorflow中的一些函数及方法: tf.nn.conv1d tf.layters.conv1d 用cov2d实现cov1d 两种池化操 ...
最新文章
- 脑机接口中的后门攻击
- 评估报告有效期过期了怎么办_T4学生签证过期了,怎么申请Vignette Transfer?
- Bootloader的分区和启动
- 中青评论:家政本科招生难,专业名字误终身?
- 社交网络图中结点的“重要性“计算(Dijkstra + SPFA + Floyd + 模板)
- 活久见,自己创造的框架竟然比开源的好用
- Android设置Alpha值实现图片渐变效果
- prop()和attr()
- Hadoop实战之三~ Hello World
- mysql去重函数的使用方法_MySQL中使用去重distinct方法的示例详解
- 也许,我们只需要缺憾的完美!
- 【C++入门】C++类和对象
- 第二十八篇 闭包函数
- java离线地图web
- uchome 不用每次都更新缓存的方法
- 5G学习(一)5G通信概述
- 文献笔记|Lau, 2021, Nature human behaviour
- python locust学习笔记
- 你知道吗?什么是 Responsive JavaScript ?
- CMake设置Visual Studio工程的调试环境变量和工作目录cwd的方法
热门文章
- kernel开启启动log_MySql启动数据库设置初始密码
- java和Mysql数据一致性_java web开发中数据一致性的问题
- form怎么加ion_企业微信裂变该怎么做?一份裂变1000+社群裂变方案的底层逻辑
- com/mysql/jdbc/statementimpl_com.mysql.jdbc.异常.jdbc4。通信异常:通信链路故障
- 荣耀30会不会升级鸿蒙,荣耀手机不能升级鸿蒙吗?有博主给出升级名单
- python实现文件上传功能_python实现文件上传功能
- 第一门语言学python好_零基础学编程,哪一门语言比较适合入门?
- 什么叫matlab仿真,【图片】求助帖:哪位matlab大神能告诉我这个仿真这能得出什么结论呢_matlab吧_百度贴吧...
- python中如何追加_如何在Python中将元素添加到列表中-追加,扩展和插入
- 通过Server-U设置网络共享文件夹的步骤和注意事项