tf.one_hot
| Просмотреть исходный код на GitHub |
Возвращает тензор one-hot.
tf.one_hot(
indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None
)
Позиции, представленные индексами в indices, принимают значение on_value, а все остальные позиции — значение off_value.
on_value и off_value должны иметь совпадающие типы данных. Если dtype также предоставлен, они должны иметь тот же тип данных, что и указано в dtype.
Если on_value не предоставлен, он будет по умолчанию иметь значение 1 с типом dtype.
Если off_value не предоставлен, он будет по умолчанию иметь значение 0 с типом dtype.
Если входной indices имеет ранг N, выходной тензор будет иметь ранг N+1. Новая ось создается на измерении axis (по умолчанию новая ось добавляется в конец).
Если indices — скаляр, форма вывода будет вектором длины depth.
Если indices — вектор длиной features, форма вывода будет:
features x depth if axis == -1 depth x features if axis == 0
Если indices — матрица (пакет) с формой [batch, features], форма вывода будет:
batch x features x depth if axis == -1 batch x depth x features if axis == 1 depth x batch x features if axis == 0
Если indices — RaggedTensor, аргумент 'axis' должен быть положительным и ссылаться на ось, не являющуюся ragged. Вывод будет эквивалентен применению 'one_hot' к значениям RaggedTensor и созданию нового RaggedTensor из результата.
Если dtype не предоставлен, он попытается предположить тип данных on_value или off_value, если один или оба из них переданы. Если ни on_value, ни off_value, ни dtype не предоставлены, dtype по умолчанию будет иметь значение tf.float32.
Примечание: Если требуется выходной тип данных, не являющийся числовым (tf.string,tf.boolи т. д.), то иon_value, иoff_valueдолжны быть предоставлены функции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.]]
indices = [0, 2, -1, 1]
depth = 3
tf.one_hot(indices, depth,
on_value=5.0, off_value=0.0,
axis=-1) # output: [4 x 3]
# [[5.0, 0.0, 0.0], # one_hot(0)
# [0.0, 0.0, 5.0], # one_hot(2)
# [0.0, 0.0, 0.0], # one_hot(-1)
# [0.0, 5.0, 0.0]] # one_hot(1)
indices = [[0, 2], [1, -1]]
depth = 3
tf.one_hot(indices, depth,
on_value=1.0, off_value=0.0,
axis=-1) # output: [2 x 2 x 3]
# [[[1.0, 0.0, 0.0], # one_hot(0)
# [0.0, 0.0, 1.0]], # one_hot(2)
# [[0.0, 1.0, 0.0], # one_hot(1)
# [0.0, 0.0, 0.0]]] # one_hot(-1)
indices = tf.ragged.constant([[0, 1], [2]])
depth = 3
tf.one_hot(indices, depth) # output: [2 x None x 3]
# [[[1., 0., 0.],
# [0., 1., 0.]],
# [[0., 0., 1.]]]
| Аргументы | |
|---|---|
indices | Список индексов. |
depth | Скаляр, определяющий глубину измерения one-hot. |
on_value | Скаляр, определяющий значение заполнения выхода, когда indices[j] = i. (по умолчанию: 1) |
off_value | Скаляр, определяющий значение заполнения выхода, когда indices[j] != i. (по умолчанию: 0) |
axis | Ось заполнения (по умолчанию: -1, новая внутренняя ось). |
dtype | Тип данных выходного тензора. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
output | Тензор one-hot. |
| Возбуждает | |
|---|---|
TypeError | Если тип данных on_value или off_value не совпадает с dtype |
TypeError | Если тип данных on_value и off_value не совпадают |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/one_hot