可以使用np和tf两种方式转化编码
np 先生成单位矩阵,然后取相应向量
tf函数较为简单,直接调用,传入label和种类数目
两者可以达成同样的效果
@tf_export("one_hot")
def one_hot(indices,
depth,
on_value=None,
off_value=None,
axis=None,
dtype=None,
name=None):
import numpy as np
import tensorflow as tf
all_cnt = 10
label = [4, 2, 3]
print(label)
print(np.eye(all_cnt)[label])
one = tf.one_hot(label, all_cnt)
with tf.Session() as sess:
print(
sess.run(one)
)
[4, 2, 3]
[[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]]
[[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]]
转载至链接:https://my.oschina.net/ahaoboy/blog/1923787