Une minute
Réaliser un one-hot encoding avec Tensorflow
On exécute la fonction tf.nn.embedding_lookup (qui permet d’exécuter l’opération de recherche tensorielle) entre la matrice identité et ses données:
import numpy as np
a = 5
b = [1, 2, 3]
# one hot an integer
one_hot_a = tf.nn.embedding_lookup(np.identity(10), a)
# one hot a list of integers
one_hot_b = tf.nn.embedding_lookup(np.identity(max(b)+1), b)
with tf.Session() as sess:
print(sess.run([one_hot_a, one_hot_b]))
Output:
[array([0., 0., 0., 0., 0., 1., 0., 0., 0., 0.]), array([[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])]