最近還在看《TensorFlow 實戰Google深度學習框架第二版》這本書,根據第六章里面對於卷基層和池化層的介紹可以發現,在執行 tf.nn.conv2d 和 tf.nn.max_pool 函數時,有幾個參數是差不多的,一個是 filter,在卷積操作中就是卷積核,是一個四維矩陣,格式是 [CONV_SIZE, CONV_SIZE, INPUT_DEEP, CONV_DEEP],分別是這一層卷積核的長寬和輸入的深度以及卷積核的個數(卷積核的深度),在池化操作中,這個filter就是池化的kernel的大小,格式是[b,h,w,c]。
b表示在樣本上的窗口大小默認為1,也就是每一個樣本都會進行運算。h表示在高度上的窗口大小,這個可以自己設定,根據網絡的結構合理調節。w表示在寬度上的窗口大小,這個同上可以自己設定。c表示在通道上的窗口大小默認為1,這個表示每一個通道都會進行運算。
另外一個參數是strides,格式也是[b,h,w,c],指的是步長,也就kernel移動一次的長度。
b表示在樣本上的步長默認為1,也就是每一個樣本都會進行運算。h表示在高度上的默認移動步長為1,這個可以自己設定,根據網絡的結構合理調節。w表示在寬度上的默認移動步長為1,這個同上可以自己設定。c表示在通道上的默認移動步長為1,這個表示每一個通道都會進行運算。
那么,會不會b和c使用大於1的值呢,特殊情況使用個別樣本的個別通道的數據?
參考:1、https://blog.csdn.net/TwT520Ly/article/details/79540251
2、https://blog.csdn.net/ddy_sweety/article/details/80634579
如果上述理解有什么謬誤的地方,還請評論指正,謝謝。
