類別名稱轉換爲一一對應的數字標籤

在某些時候,例如使用mask_RCNN進行目標檢測時,對每一幅圖上有多個標記樣本,那麼就需要將類別的名字轉換爲數字標籤傳入到分類器中,比如,用顏色來舉例

'blue'=1

'yellow'=2

'red'=3

我們在輸入類別的時候,不能輸入['blue','yellow','red'],因爲在裏面進行計算LOSS,反向傳播等等,都是利用數字在進行計算,而且不僅僅只有['blue','yellow','red']這一種方式,還有['red','yellow','blue']等各種排列方式,那麼:如何將['blue','yellow','red']轉換位對應關係的[1,2,3]呢?

我們知道在python的字典中,是存在一一對應的關係的,也就是key-value鍵對,我們可以利用字典的這個特性將類別名稱(字符串)與標籤(數字)進行綁定,進而完成該對應轉換!

首先,我們需要定義一個函數str2num:

            def str2num(s):
                digits = {'blue': 1, 'yellow': 2, 'red': 3, 'white': 4, 'black': 5}
                return digits[s]

這就完成了標籤與數字的綁定,然後使用python自帶的map函數對['blue','yellow','red']進行處理:

ID_list = list(map(str2num, ['blue','yellow','red']))

這樣就完成了轉換:     

            ID_list=[1,2,3]


發佈了48 篇原創文章 · 獲贊 67 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章