Одно горячее кодирование в тензорном потоке для пакетного обучения
Мои данные обучения содержат ~1500 меток (строка, одна метка на запись), и я хочу провести пакетное обучение (просто загрузите одну партию в память, чтобы обновить веса в нейронной сети). Мне было интересно, есть ли класс в tenorflow, чтобы сделать одну горячую кодировку для меток в каждом пакете? Что-то вроде в sklearn мы можем сделать
onehot_encoder = OneHotEncoder(sparse=False)
onehot_encoder.fit(entire training labels)
И затем в каждой партии в сеансе tenorflow я могу преобразовать метку своей партии и передать ее в тензор потока для обработки.
batch_label = onehot_encoder.transform(batch training labels)
sess.run(feed_dict={x:...,y:batch_label)
Пример будет оценен. Благодарю.
1 ответ
Я думаю, что этот пост похож на этот Tensorflow One Hot Encoder?
Сортировать ответ по этой ссылке http://www.tensorflow.org/api_docs/python/tf/one_hot
indices = [0, 1, 2]
depth = 3
tf.one_hot(indices, depth)
# output: [3 x 3]
# [[1., 0., 0.],
# [0., 1., 0.],
# [0., 0., 1.]]
Просто опубликовать его, чтобы сэкономить ваше время;)