热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

CNN的超参数&宽卷积和窄卷积的理解及tensorflow中的实现

窄卷积vs宽卷积在上文中解释卷积运算的时候,我忽略了如何使用滤波器的一个小细节。在矩阵的中部使用3x3的滤波器没有问题,在矩阵的边缘该怎么办呢?左上角的元素没有顶部和左侧相邻的元素,该如何滤波呢?

窄卷积 vs 宽卷积

在上文中解释卷积运算的时候,我忽略了如何使用滤波器的一个小细节。在矩阵的中部使用3x3的滤波器没有问题,在矩阵的边缘该怎么办呢?左上角的元素没有顶部和左侧相邻的元素,该如何滤波呢?解决的办法是采用补零法(zero-padding)。所有落在矩阵范围之外的元素值都默认为0。这样就可以对输入矩阵的每一个元素做滤波了,输出一个同样大小或是更大的矩阵补零法又被称为是宽卷积不使用补零的方法则被称为窄卷积。1D的例子如图所示:

当滤波器长度相对输入向量的长度较大时,你会发现宽卷积很有用,或者说很有必要

所以,在NLP中,如果滤波器的长度相对于输入向量的长度比较大

,要记住使用宽卷积。在上图中,窄卷积输出的长度是 (7-5)+1=3,宽卷积输出的长度是(7+2*4-5)+1=11。

一般形式为:

      

在tensorflow的实现中,conv2d的padding=‘SAME',默认的就是宽卷积的方式,会进行补零。padding = ’VALID'就是窄卷积的方式。






推荐阅读
author-avatar
旺仔牛奶糖2702938317
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有