TensorFlow 之 strides ,dropout

1 篇文章 0 订阅
1 篇文章 0 订阅

学习 TensorFlow 的时候,其中有几个函数参数一直很迷惑,现在做一个梳理。

  • strides

strides 的作用很多文章说的是调整感受野在 feature map 中的距离,但是为什么是一个长度为 4  的 list,只用长度为 2 表示在长度和宽度上面移动的距离不就行了吗?而且 strides[0] 和 strides[1] 都必须为1,这是为什么?原来,strides 表示的是在 feature map 的每一维移动的距离。用到移动步长 strides 的地方主要有卷积层的卷积核以及池化层中的池化窗口的移动,也就是以下两个函数

def conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None,data_format=None, name=None)

def max_pool(value, ksize, strides, padding, data_format="NHWC", name=None)

卷积函数中,input 的格式是一个 4维张量 [batch, in_height, in_width, in_channels],那么 strides 的 4 维,就是调整在对应的 input 的每一维移动的步长,具体来说就是

  • strides[0]=1,表示在 batch 维度上移动为 1,指不跳过任何一个样本,每一个样本都会进行运算
  • strides[1] = 1,表示在 in_height 上移动步长为1,可以自己设定,根据网络的结构合理调节
  • strides[2] = 1,表示在 in_width 上的移动步长为1,可以自己设定,根据网络的结构合理调节
  • strides[3] = 1,表示在 in_channels 维度上移动为 1,指不跳过任何一个颜色通道,每一个通道都会进行运算

于是, strides[0] 和 strides[1] 都设置为1,表示只能在每次移动一个样本,每个样本每次移动一个通道。

池化函数中的 value 和 卷积函数的 input 格式一样,strides 表示的含义于是也是一样的。

  • dropout

Dropout 是用在全连接层的防止过拟合使用的函数

可以看到 keep_prob 即将被丢弃,官网推荐使用 rate 代替 1-keep_prob。keep_prob 是保留概率,如果设为 1 就意味着全部保留,也就是 dropout 不起作用。

它的参数各个的意义是

推荐使用 rate 表示 x 的每个元素被丢弃的概率。

另外还有各参数就是 noise_shape ,

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值