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' должен быть положительным и ссылаться на неразрезанную ось. Вывод будет эквивалентен применению '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 не совпадают друг с другом |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/one_hot