對tensorflow中的strides引數使用詳解
在二維卷積函式tf.nn.conv2d(),最大池化函式tf.nn.max_pool(),平均池化函式
tf.nn.avg_pool()中,卷積核的移動步長都需要制定一個引數strides(步長),因為無論是卷積操作還是各種型別的池化操作,都是某種形式的滑動視窗(sliding window)處理,這就要求指定從當前視窗移動下一個視窗位置的移動步長。
TensorFlow 文件關於 strides的說明如下:
strides: A list of ints that has length >= 4. The stride of the sliding window for each dimension of the input tensor.
首先要求 strides 為長度不小於 4 的整數構成的 list,strides引數表示的是滑窗在輸入張量各個維度上的移動步長。
如果strides=[b,h,w,c],其中strides[0]和strides[3]預設為1。
具體什麼含義呢?
一般而言,對於輸入張量(input tensor)有四維資訊:[batch,height,width,channels](分別表示 batch_size,也即樣本的數目,單個樣本的行數和列數,樣本的頻道數,rgb影象就是三維的,灰度影象則是一維),對於一個二維卷積操作而言,其主要作用在 height,width上。
strides引數確定了滑動視窗在各個維度上移動的步數。一種常用的經典設定就是要求,strides[0]=strides[3]=1。
strides[0]=1,表示在 batch 維度上移動為 1,指不跳過任何一個樣本,每一個樣本都會進行運算
strides[1] = 1,表示在高度上移動步長為1,這個可以自己設定,根據網路的結構合理調節
strides[2] = 1,表示在寬度上的移動步長為1,這個可以自己設定,根據網路的結構合理調節
strides[3] = 1,表示在 channels 維度上移動為 1,指不跳過任何一個顏色通道,每一個通道都會進行運算
以上這篇對tensorflow中的strides引數使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。