TensorFlow 多分类标签转换成One-hot

来源:互联网 发布:人工智能演讲 编辑:程序博客网 时间:2024/06/05 17:17

TensorFlow 多分类标签转换成One-hot

在处理多分类问题时,将多分类标签转成One-hot编码是一种很常见的手段,以下即为Tensorflow将标签转成One-hot的tensor。以Mnist为例,如果标签为“3”,则One-hot编码为[0,0,0,1,0,0,0,0,0,0].

import tensorflow as tf  # version : 1.4NUM_CLASSES = 10 # 10分类labels = [0,1,2,3] # sample labelbatch_size = tf.size(labels) # get size of labels : 4labels = tf.expand_dims(labels, 1) # 增加一个维度indices = tf.expand_dims(tf.range(0, batch_size,1), 1) #生成索引concated = tf.concat([indices, labels] , 1) #作为拼接onehot_labels = tf.sparse_to_dense(concated, tf.stack([batch_size, NUM_CLASSES]), 1.0, 0.0) # 生成one-hot编码的标签

sparse_to_dense 函数说明:https://www.tensorflow.org/api_docs/python/tf/sparse_to_dense
将稀疏矩阵转换成密集矩阵,其中索引在concated中,值为1.其他位置的值为默认值0.

原创粉丝点击