标签数据转one_hot向量
跑一个小的训练程序,需要制作one_hot标签,结果在作标签时一直出错,也是无语。下面就将自己知道的制作one_hot向量标签的方法记录一下,顺便再熟悉一遍。
1、利用numpy
import numpy as np
label = np.array([0,3,2,8,9,1])##标签数据,标签从0开始
classes = max(label) + 1 ##类别数为最大数加1
one_hot_label = np.zeros(shape=(label.shape[0],classes))##生成全0矩阵
one_hot_label[np.arange(0,label.shape[0]),label] = 1##相应标签位置置1
print one_hot_label
[[ 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[ 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]]
2、利用tf.sparse_to_dense
import numpy as np
import tensorflow as tf
label = np.array([0,3,2,8,9,1])##标签数据,标签从0开始
classes