【发布时间】:2018-11-09 00:45:47
【问题描述】:
如何根据 tf.int64 中 1 的索引实现 N-hot 编码?输入是包含几个 tf.int64 的张量。 N-hot 编码旨在替代 tf.slim 中的 one-hot 编码。
one_hot 编码实现如下:
def dense_to_one_hot(labels_dense, num_classes):
"""Convert class labels from scalars to one-hot vectors."""
num_labels = labels_dense.shape[0]
index_offset = numpy.arange(num_labels) * num_classes
labels_one_hot = numpy.zeros((num_labels, num_classes))
labels_one_hot.flat[index_offset + labels_dense.ravel()] = 1
return labels_one_hot
N-not encoding表示:19=00010011,编码后的结果为[0,0,0,1,0,0,1,1]。
【问题讨论】:
-
N是否始终是图构建时已知的常数值,还是可能是另一个 TensorFlow 操作的结果?
标签: numpy tensorflow encoding one-hot-encoding