[英]How to understand the convolution parameters in tensorflow?
當我在 tensorflow 教程中閱讀“Deep MNIST for Expert”一章時。
下面給出了第一層權重的函數。 我不明白為什么補丁大小是 5*5,為什么特征數是 32,它們是你可以選擇任何人的隨機數還是必須遵循一些規則? 以及特征編號“32”是否是“卷積核”?
W_conv1 = weight_variable([5, 5, 1, 32])
第一卷積層
我們現在可以實現我們的第一層。 它將由卷積組成,然后是最大池化。 卷積將為每個 5x5 補丁計算 32 個特征。 它的權重張量的形狀為 [5, 5, 1, 32]。 前兩個維度是補丁大小,接下來是輸入通道數,最后一個是輸出通道數。 我們還將有一個偏置向量,每個輸出通道都有一個組件。
補丁大小和特征數量是網絡超參數,因此完全是任意的。
順便說一下,為了定義一個工作和執行網絡,需要遵循一些經驗法則。 由於多個小內核的應用與較少數量的大內核之間的等效性,內核大小應該很小(這是一個圖像處理主題,在VGG 論文中有很好的解釋)。 令人上癮的是,使用小過濾器的操作執行起來要快得多。
要提取的特征數量(在您的示例中為 32)完全是任意的,找到正確的數字在某種程度上是一門藝術。
是的,它們都是超參數,在本教程中大多是任意選擇的。 目前已經做了很多努力來尋找合適的內核大小,但對於本教程來說,這並不重要。
教程說:
卷積將為每個 5x5 補丁計算 32 個特征。 它的權重張量的形狀為 [5, 5, 1, 32]
tf.nn.conv2d()告訴第二個參數代表您的過濾器,由[filter_height, filter_width, in_channels, out_channels]
。 所以[5, 5, 1, 32]
意味着你的in_channels
是 1:你有一個灰度圖像,所以這里沒有驚喜。
32 意味着在我們的學習階段,網絡將嘗試學習 32 個不同的內核,這些內核將在預測期間使用。 您可以將此數字更改為任何其他數字,因為它是您可以調整的超參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.