吉他价格品牌,吉他教学教程,吉他曲谱视频
关注520吉他网
文章页顶部广告位
当前位置:首页 > 头条 > tensorflow在实现卷积神经网络时,假如步长为2为什么要写成[1,2,2,1]?
时间:2019-11-09     来源:网络资源     标签:

这个是由于Tensorflow API的设计造成的,不知道题主用的哪一个op。

我就假设是用tf.nn.conv2d这个吧。

我们看下他的参数设计tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=True,data_format=’NHWC’,dilations=[1, 1, 1, 1],name=None)input很好理解,就是输入的Tensor。

filter是卷积核。

题主所说的步长在这里其实就是stride。

data_format=’NHWC’ 这里要简要介绍下,N是batch_size,H就是Height,W就是Width,C指的是Channel。

data_format指定了输入数据的格式,如果是NHWC的,那么你输入的张量也要按照这个格式来排列。

然后,我们知道卷积核是在feature map上滑动的窗口,而且要划过输入数据的每一维。

题主想要把stride,也就是步长设为2。

也就是每次滑动要移动两个像素即可。

stride的格式也是一个4-D的tensor,每一维代表的含义和data-format一样,所以如果想要在feature map上按照stride=2的步长移动的话,就需要设为[1,2,2,1]这种形式,因为第一位代表batch_size,最后一维代表channel,这两维不需要按步长滑动。

中间的两维分别代表width和height,设为2即按照步长滑动卷积核。

文章页顶部广告位
文章页顶部广告位
文章页顶部广告位

报歉!评论已关闭。