1 min readMar 16, 2019
因為如果前一層feature map數量是1000個,直接用3*3 conv算計算量太大,所以會先採用1*1conv降低feature map數,然後在用3*3 conv計算,這樣計算量才會低,在大部分的人都會採用這種技巧。比如inception的其中一條路就是這樣,因為一個inception會走三到四條分支,因為不知道用1*1conv,3*3conv還是5*5conv好,乾脆都去做,最後在concat起來,讓網路自己去學那個大小的kernel map比較重要,但5*5conv計算量很大,如果餵進來的feature map數很大不做降維,整體網路會非常慢。
當然除了降維,也有不少用來升維度,比如mobilenetv2的bottleneck結構,為了解決depthwise conv特徵量的不足,利用1*1conv先將feature map數增加特徵,然後在做depthwise conv,在用1*1conv將feature map做訊息整合在輸出給下一層使用。