在某些時候,例如使用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]