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 | A Tensor индексов. |
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/r2.3/api_docs/python/tf/one_hot