tf.one_hot
Возвращает тензор 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и т. д.), дляone_hotнеобходимо указать оба параметра:on_valueиoff_value.
Например:
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 | 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 не совпадают друг с другом |
© 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/api_docs/python/tf/one_hot