![](https://img.51dongshi.com/20241128/wz/18322920452.jpg)
在構建CNN(卷積神經網絡)時,TensorFlow提供了一個核心API來調用卷積核,其中包含填充方式參數。調用函數定義如下:def conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None)源碼中說明了padding參數可以使用“SAME”或“VALID”兩種方式。“SAME”填充方式在輸出形狀計算公式中體現為比“VALID”多出一列。例如,對于一個2x3矩陣,使用2x2窗口進行最大池化,步長為2,“SAME”填充方式會增加第四列以保持2x2窗口,通常使用0填充。在文本應用中,通常使用“VALID”填充方式,卷積核大小為n×k,n為輸入向量維度,k為輸入向量的維度。這類似于統計語言模型中的N-gram。設置網絡結構時,輸入輸出形狀計算公式如下,其中dilation_rate默認為1,不考慮其他參數:對于“VALID”,輸出形狀計算公式為...了解了“SAME”與“VALID”的區別后,我們可以通過運行tf.nn.conv2d示例來深入理解strides和padding的效果。在示例中,詳細解釋了如何使用tf.nn.conv2d的基本參數,這些規范同樣適用于其他CNN語句。例如,運行結果展示了...總之,正確理解padding參數對CNN的影響,對于構建有效模型至關重要。通過實驗和實際應用,您可以更好地掌握如何選擇合適的填充方式,以優化模型性能。