one-hot编码(pytorch实现)
n = 5 #类别数
indices = torch.randint(0, n, size=(15,15)) #生成数组元素0~5的二维数组(15*15)
one_hot = torch.nn.functional.one_hot(indices, n) #size=(15, 15, n)
1. One-hot编码(一维数组、二维图像都可以):label = torch.nn.functional.one_hot(label, N)。 #一维数组的one hot编码,N为类别,label为数组
ps. (1)把数组(m,n)转换成(a,b,c),reshape/view时是将前者逐行读取,转换成后者的。
(2)还会补充one-hot编码转换成单通道图像的方法。
2. One-hot编码---label
对于一维数组,results = one_hot_label.argmax(dim=1, keepdim=True)
或者a = [np.argmax(l) for l in one_hot] #将onehot编码转成一般编码