程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Mutual conversion between Python label and one hot

編輯:Python

List of articles

  • Preface
  • label turn one-hot
  • one-hot turn label

Preface

Sometimes you need to label, For example, the discrete action space of reinforcement learning , Output action index ; Sometimes you need to one-hot, For example, training data or the action of inputting the previous state , Simple mutual transformation is still important .

label turn one-hot

adopt np.eye(action_dims)[actions] Quickly generate :

>>> import numpy as np
>>> label = [1,2,2,3]
>>> np.eye(4)[label]
array([[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])

one-hot turn label

numpy Can pass np.argmax(onehot, 1) Realization ,pytorch Can pass torch.topk(one_hot, 1)[1].squeeze(1) Realization :

>>> import torch
>>> onehot
array([[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
>>> np.argmax(onehot,1)
array([1, 2, 2, 3], dtype=int64)
>>> torch.topk(torch.tensor(onehot), 1)[1].squeeze(1)
tensor([1, 2, 2, 3])

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved