slice層解析


如果說之前的Concat是將多個bottom合並成一個top的話,那么這篇博客的slice層則完全相反,是把一個bottom分解成多個top,這帶來了一個問題,為什么要這么做呢?為什么要把一個低層的切分成多個高層的呢?自然有它的用途,大家想想,假如我們做的是多任務的問題,比如車牌檢測、燃氣表盤檢測、驗證碼檢測,這類OCR問題,之前做的一個項目就是一個多標簽的學習,燃氣表大家都知道,8位的表盤,每位都是數字(0~9),前面的環節不考慮小數點。采取的方法是定位+識別的方法,我們先用深度模型檢測表盤的位置,然后在crop的位置上識別這些數字,那么問題來了,傳統的單任務根本不容易做這件事,如果你想把這8位的數字定義成一個任務一個目標的話,那可想而知,類別太太太多了,每類都需要幾百張以上的圖片,這數據量難以想象;而如果我們把這個問題當作是單任務的多目標呢?類別確實是少了很多,只有最少的10類了(0~9),可問題是每張圖片都需要標注這8個數字,有點太辛苦了,當然這種方法比第一個方法要好很多;那如果是多任務單目標呢?你看一張圖片上我們只會crop出一個目標,而這個目標我們是知道的,它有8個數字組成,這就是多任務,換一句話說就是檢測數字玩8次,每次都是這10個數,但你要同時玩8次這樣的事,這就是多任務,多任務伴隨着多標簽(label),這個時候slice層派上用場,把我們最初的問題大大滴簡化了,我們不再需要做那么復雜的標注,同時也將問題變得可控,因為只有10類嘛。

slice層,可根據給定的維度將bottom切分成多個top,用於具有多個輸入多任務的網絡。slice層有三個參數,axis和slice_dim用於指定切分的維度是什么,默認為1,切分channel維度,還有另一個選擇就是切分num,類似於Concat層,但是注意這兩個參數只能指定一個,常用axis。第三個參數就是指定從哪里開始切分,怎么切分?這個參數就是slice_point,因此slice層的運用格式為:

layer {
  name: "slicelayer"
  type: "Slice"
  bottom: "labels"
  top: "labels1"
  top: "labels2"
  top: "labels3"
  top: "labels4"
  top: "labels5"
  top: "labels6"
  top: "labels7"
  top: "labels8"
  slice_param {
    axis: 1
    slice_point: 1
    slice_point: 2
    slice_point: 3
    slice_point: 4
    slice_point: 5
    slice_point: 6
    slice_point: 7
  }
}

解釋一下,我們的labels是由8個數字組成的,所以8個任務當然要切分成8個label,怎么切呢,顯然我們labels之間每隔1為一個label,切7次就搞定了,所以注意slice_point的個數要比top的個數少一個,大概的意思就是一根繩子剪幾次有8段?答案是7次,當然繩子是無折疊的,很單純的。

上面的問題我們是切分label,因為我說是多標簽的,那如果切分data呢?有沒有這種情況?shuzfan的博客中提到了人臉檢測的MTCNN的例子,里面有concat層和slice層在num維度上的運用,因為我沒用過,不太熟悉,但說明這種情況是存在的(也即存在便有意義,所以啊,你的存在就是一種意義,常常這么欺騙自己)。

細心的同學發現了,其實caffe還有Split layer,插一句,此處推薦給大家caffe namespace,方便大家查閱,我們可以找到Split layer,對它的描述是:Creates a "split" path in the network by copying the bottom Blob into multiple top Blobs to be used by multiple consuming layers. 意思很明顯了,就是把一個bottom 的blob復制成幾份相同的blob給top層用。實際中這個層沒用過,但我覺得它可以將一個data層對應幾個top層,這樣起到了共享輸入的效果。

總之,在這篇博客和之前Concat的博客中,我們介紹了兩個可謂相反的層,在多任務學習中,兩者往往在一起用,會起到意想不到的效果。我們可以使用slice層進行多標簽學習的時候,運用concat層增加相鄰層的語義相關性,增強我們模型對特征的表達能力,這在Concat層解析中已經得到了實驗證明。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM