生成one hot的方法

2022-06-22 19:51:12 字數 653 閱讀 9035

def encode_onehot(labels):

classes = set(labels)

classes_dict =

labels_onehot = np.array(list(map(classes_dict.get, labels)), dtype=np.int32)

return labels_onehot

np.identity() 生成單位矩陣,所以每一行即代表了乙個label的one-hot表示,通過字典的形式儲存下來

map(classes_dict.get, labels) 對於lables中的每乙個lable,都帶入到字典中,即得到其對應的one-hot編碼。

另外可以直接呼叫pytorch中的one-hot方法:

數字類別生成onehot

對應行的列 原始標籤 my label np.array 3,4,2,4,6,1 類別數量 num class 6 樣本數量 num my label.shape 0 生成onehot標籤 原理是通過numpy的陣列索引,注意不能用label my label 1 的方式,因為使用切片操作,之後會操...

Python 生成one hot標籤和恢復

首先生成乙個主對角全為1的其餘全為0的矩陣,比如有n個分類就是n n,效果如下 隨後根據標籤列表 或者numpy陣列 選取合適的行,比如標籤是 9,1,0,0 那麼就會選擇上圖矩陣中對應的9 1 0 0行,得到one hot標籤,如果不熟悉numpy陣列的列表切片的 就是說numpy array s...

one hot 編碼的實現

對 mnist 手寫字元識別 資料集進行手寫數字分類,屬於多分類問題,手寫數字 0 9,共 10 類,從 mnist.pkl.gz 檔案中解析得到的字元影象 28 28 的標籤 label,或者目標值 只有 1 維,進行 one hot 編碼可將其編碼為 10 維,數字 0,編碼為 1,0,0,0,...