栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

tensorflow构建网络的基础

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tensorflow构建网络的基础

conv1 = tf.nn.conv2d(input_tensor,conv1_weights,strides=[1,1,1,1],padding='SAME')

这是一个常见的卷积操作,其中strides=【1,1,1,1】表示滑动步长为1,padding=‘SAME’表示填0操作

当我们要设置步长为2时,strides=【1,2,2,1】,很多同学可能不理解了,这四个参数分别代表了什么,查了官方函数说明一样不明不白,今天我来解释一下。

strides在官方定义中是一个一维具有四个元素的张量,其规定前后必须为1,这点大家就别纠结了,所以我们可以改的是中间两个数,中间两个数分别代表了水平滑动和垂直滑动步长值,于是就很好理解了。

在卷积核移动逐渐扫描整体图时候,因为步长的设置问题,可能导致剩下未扫描的空间不足以提供给卷积核的,大小扫描 比如有图大小为5*5,卷积核为2*2,步长为2,卷积核扫描了两次后,剩下一个元素,不够卷积核扫描了,这个时候就在后面补零,补完后满足卷积核的扫描,这种方式就是same。如果说把刚才不足以扫描的元素位置抛弃掉,就是valid方式。

tf.nn.conv2d(x,kernel,strides=[1,1,1,1],padding='SAME')
# kernel[0,1]数表示卷积核的尺寸,
# kernel[2]表示channel数量,灰度图片是1,RGB图是3
# kernel[3]表示卷积核的数量
# padding='SAME'表示边界加上padding,使得卷积的输入和输出保持同样的尺寸。所加的padding为0,也就是边界补0
# padding='VALID'表示取样不超过边框,也就是 no padding
tf.nn.max_pool(x,ksize=[1,3,3,1],strides=[1,2,2,1],padding='SAME')
# 池化尺寸3*3,横竖步长为2*2
# padding='SAME'表示加边框,使池化层的输出输出保持同样的尺寸
# padding='VALID'表示取样不超过边框,

对参考的文稿表示感谢:

tensorflow: 花卉分类_qq_25987491的博客-程序员宅基地 - 程序员宅基地

【CNN】实现 - 极思路

https://www.shuzhiduo.com/A/ke5jj7kg5r/

TensorFlow Tutorial-1 | 朱思宇的博客

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275867.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号