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' должен быть положительным и ссылаться на не-раgged ось. Выход будет эквивалентен применению '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 | 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