tf.experimental.dtensor.DVariable
Замена для tf.Variable, которая следует принципу размещения начального значения.
Наследуется от: Variable
tf.experimental.dtensor.DVariable(
initial_value, *args, dtype=None, **kwargs
)
Используется в блокнотах
| Используется в руководстве | Используется в учебниках |
|---|---|
Класс также обрабатывает операции restore/save в DTensor. Обратите внимание, что DVariable может вернуться к обычному tf.Variable в данный момент, если initial_value не является DTensor.
| Атрибуты | |
|---|---|
aggregation | |
constraint | Возвращает функцию ограничения, связанную с этой переменной. |
create | Операция, ответственная за инициализацию этой переменной. |
device | Устройство, на котором находится эта переменная. |
dtype | Тип данных этой переменной. |
graph | Graph этой переменной. |
handle | Детективная ручка доступа к этой переменной. |
initial_value | Возвращает тензор, используемый в качестве начального значения для переменной. |
initializer | Операция, ответственная за инициализацию этой переменной. |
name | Имя детективной ручки для этой переменной. |
op | Операция для этой переменной. |
save_as_bf16 | |
shape | Форма этой переменной. |
synchronization | |
trainable | |
Подклассы
Методы
assign
assign(
value, use_locking=None, name=None, read_value=True
)
Присваивает новое значение этой переменной.
| Аргументы | |
|---|---|
value | A Tensor. Новое значение для этой переменной. |
use_locking | Если True, использовать блокировку во время присваивания. |
name | Имя для использования при присваивании. |
read_value | A bool. Нужно ли читать и возвращать новое значение переменной или нет. |
| Возвращает | |
|---|---|
Если read_value равен True, этот метод вернет новое значение переменной после завершения присваивания. В противном случае, в режиме графика он вернёт Operation, который выполняет присваивание, а в режиме eager — None. |
assign_add
assign_add(
delta, use_locking=None, name=None, read_value=True
)
Добавляет значение к этой переменной.
| Аргументы | |
|---|---|
delta | A Tensor. Значение для добавления к этой переменной. |
use_locking | Если True, использовать блокировку во время операции. |
name | Имя для использования в операции. |
read_value | A bool. Нужно ли читать и возвращать новое значение переменной или нет. |
| Возвращает | |
|---|---|
Если read_value равен True, этот метод вернет новое значение переменной после завершения присваивания. В противном случае, в режиме графика он вернёт Operation, который выполняет присваивание, а в режиме eager — None. |
assign_sub
assign_sub(
delta, use_locking=None, name=None, read_value=True
)
Вычитает значение из этой переменной.
| Аргументы | |
|---|---|
delta | A Tensor. Значение для вычитания из этой переменной. |
use_locking | Если True, использовать блокировку во время операции. |
name | Имя для использования в операции. |
read_value | A bool. Нужно ли читать и возвращать новое значение переменной или нет. |
| Возвращает | |
|---|---|
Если read_value равен True, этот метод вернет новое значение переменной после завершения присваивания. В противном случае, в режиме графика он вернёт Operation, который выполняет присваивание, а в режиме eager — None. |
batch_scatter_update
batch_scatter_update(
sparse_delta, use_locking=False, name=None
)
Присваивает tf.IndexedSlices этой переменной по частям.
Аналогично batch_gather. Предполагается, что у этой переменной и разреженной delta IndexedSlices есть ряд ведущих измерений, которые одинаковы для всех из них, и обновления выполняются по последнему измерению индексов. Другими словами, измерения должны быть следующими:
num_prefix_dims = sparse_delta.indices.ndims - 1 batch_dim = num_prefix_dims + 1 sparse_delta.updates.shape = sparse_delta.indices.shape + var.shape[ batch_dim:]
где
sparse_delta.updates.shape[:num_prefix_dims] == sparse_delta.indices.shape[:num_prefix_dims] == var.shape[:num_prefix_dims]
И выполняемая операция может быть выражена как:
var[i_1, ..., i_n, sparse_delta.indices[i_1, ..., i_n, j]] = sparse_delta.updates[ i_1, ..., i_n, j]
Когда sparse_delta.indices является одномерным тензором, эта операция эквивалентна scatter_update.
Чтобы избежать этой операции, можно перебрать первые ndims переменной и использовать scatter_update на подтензорах, полученных в результате среза первого измерения. Это допустимый вариант для ndims = 1, но менее эффективный, чем это реализация.
| Аргументы | |
|---|---|
sparse_delta | tf.IndexedSlices для присвоения этой переменной. |
use_locking | Если True, использовать блокировку во время операции. |
name | имя операции. |
| Возвращает | |
|---|---|
| Обновлённая переменная. |
| Исключения | |
|---|---|
TypeError | если sparse_delta не является IndexedSlices. |
count_up_to
count_up_to(
limit
)
Увеличивает эту переменную до достижения limit. (устаревшее)
При выполнении этой операции она пытается увеличить переменную на 1. Если увеличение переменной приведёт к значению выше limit, операция вызывает исключение OutOfRangeError.
Если ошибка не возникла, операция выводит значение переменной до инкремента.
Это по существу сокращённая форма для count_up_to(self, limit).
| Аргументы | |
|---|---|
limit | значение, при достижении которого увеличение переменной вызывает ошибку. |
| Возвращает | |
|---|---|
A Tensor, который будет содержать значение переменной до инкремента. Если ни одна другая операция не изменяет эту переменную, выводимые значения будут все разные. |
eval
eval(
session=None
)
Вычисляет и возвращает значение этой переменной.
experimental_ref
experimental_ref()
УСТАРЕВШАЯ ФУНКЦИЯ
from_proto
@staticmethod
from_proto(
variable_def, import_scope=None
)
Возвращает объект Variable, созданный из variable_def.
gather_nd
gather_nd(
indices, name=None
)
Считывает значение этой переменной разреженно, используя gather_nd.
get_shape
get_shape() -> tf.TensorShape
Псевдоним Variable.shape.
initialized_value
initialized_value()
Возвращает значение инициализированной переменной. (устаревшее)
Вы должны использовать это вместо самой переменной, чтобы инициализировать другую переменную значением, зависящим от значения этой переменной.
# Initialize 'v' with a random tensor. v = tf.Variable(tf.random.truncated_normal([10, 40])) # Use `initialized_value` to guarantee that `v` has been # initialized before its value is used to initialize `w`. # The random values are picked only once. w = tf.Variable(v.initialized_value() * 2.0)
| Возвращает | |
|---|---|
Объект Tensor, содержащий значение этой переменной после выполнения её инициализатора. |
is_initialized
is_initialized(
name=None
)
Проверяет, была ли инициализирована переменная ресурса.
Выводит булево скалярное значение, указывающее, была ли тензор инициализирован.
| Аргументы | |
|---|---|
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Tensor типа bool. |
load
load(
value, session=None
)
Загрузка нового значения в эту переменную. (устаревшее)
Записывает новое значение в память переменной. Не добавляет операции в граф.
Этот метод удобства требует сессии, где запущен граф, содержащий эту переменную. Если сессия не передана, используется по умолчанию. См. tf.compat.v1.Session для получения дополнительной информации о запуске графа и сессиях.
v = tf.Variable([1, 2])
init = tf.compat.v1.global_variables_initializer()
with tf.compat.v1.Session() as sess:
sess.run(init)
# Usage passing the session explicitly.
v.load([2, 3], sess)
print(v.eval(sess)) # prints [2 3]
# Usage with the default session. The 'with' block
# above makes 'sess' the default session.
v.load([3, 4], sess)
print(v.eval()) # prints [3 4]
| Аргументы | |
|---|---|
value | Новое значение переменной |
session | Сессия для использования при оценке этой переменной. Если нет, используется сессия по умолчанию. |
| Исключения | |
|---|---|
ValueError | Сессия не передана и нет сессии по умолчанию |
numpy
numpy()
read_value
read_value()
Создаёт операцию для чтения значения этой переменной.
Следует использовать, когда требуется несколько чтений или когда желательно прочитать значение только после того, как некоторое условие станет истинным.
| Возвращает | |
|---|---|
| Значение переменной. |
read_value_no_copy
read_value_no_copy()
Создаёт операцию для чтения значения этой переменной без копирования.
Переменная считывается без копирования, даже если к ней был разреженный доступ. Переменные в режиме копирования при чтении будут преобразованы в режим копирования при записи.
| Возвращает | |
|---|---|
| Значение переменной. |
ref
ref()
Возвращает хешируемый объект-ссылку на эту переменную.
Основной сценарий использования этого API — размещение переменных в наборе/словаре. Мы не можем поместить переменные в набор/словарь, так как variable.__hash__() больше не доступен, начиная с TensorFlow 2.0.
Следующее вызовет исключение, начиная с 2.0
x = tf.Variable(5)
y = tf.Variable(10)
z = tf.Variable(10)
variable_set = {x, y, z}
Traceback (most recent call last):
TypeError: Variable is unhashable. Instead, use tensor.ref() as the key.
variable_dict = {x: 'five', y: 'ten'}
Traceback (most recent call last):
TypeError: Variable is unhashable. Instead, use tensor.ref() as the key.Вместо этого мы можем использовать variable.ref().
variable_set = {x.ref(), y.ref(), z.ref()}
x.ref() in variable_set
True
variable_dict = {x.ref(): 'five', y.ref(): 'ten', z.ref(): 'ten'}
variable_dict[y.ref()]
'ten'Также, объект ссылки предоставляет функцию .deref(), которая возвращает исходную переменную.
x = tf.Variable(5) x.ref().deref() <tf.Variable 'Variable:0' shape=() dtype=int32, numpy=5>
scatter_add
scatter_add(
sparse_delta, use_locking=False, name=None
)
Добавляет tf.IndexedSlices к этой переменной.
| Аргументы | |
|---|---|
sparse_delta | tf.IndexedSlices для добавления к этой переменной. |
use_locking | Если True, использовать блокировку во время операции. |
name | имя операции. |
| Возвращаемое значение | |
|---|---|
| Обновлённая переменная. |
| Исключения | |
|---|---|
TypeError | если sparse_delta не является IndexedSlices. |
scatter_div
scatter_div(
sparse_delta, use_locking=False, name=None
)
Делит эту переменную на tf.IndexedSlices.
| Аргументы | |
|---|---|
sparse_delta | tf.IndexedSlices для деления этой переменной. |
use_locking | Если True, использовать блокировку во время операции. |
name | имя операции. |
| Возвращаемое значение | |
|---|---|
| Обновлённая переменная. |
| Исключения | |
|---|---|
TypeError | если sparse_delta не является IndexedSlices. |
scatter_max
scatter_max(
sparse_delta, use_locking=False, name=None
)
Обновляет эту переменную максимальным значением из tf.IndexedSlices и самой себя.
| Аргументы | |
|---|---|
sparse_delta | tf.IndexedSlices для использования в операции max с этой переменной. |
use_locking | Если True, использовать блокировку во время операции. |
name | имя операции. |
| Возвращаемое значение | |
|---|---|
| Обновлённая переменная. |
| Исключения | |
|---|---|
TypeError | если sparse_delta не является IndexedSlices. |
scatter_min
scatter_min(
sparse_delta, use_locking=False, name=None
)
Обновляет эту переменную минимальным значением из tf.IndexedSlices и самой себя.
| Аргументы | |
|---|---|
sparse_delta | tf.IndexedSlices для использования в операции min с этой переменной. |
use_locking | Если True, использовать блокировку во время операции. |
name | имя операции. |
| Возвращаемое значение | |
|---|---|
| Обновлённая переменная. |
| Исключения | |
|---|---|
TypeError | если sparse_delta не является IndexedSlices. |
scatter_mul
scatter_mul(
sparse_delta, use_locking=False, name=None
)
Умножает эту переменную на tf.IndexedSlices.
| Аргументы | |
|---|---|
sparse_delta | tf.IndexedSlices для умножения на эту переменную. |
use_locking | Если True, использовать блокировку во время операции. |
name | имя операции. |
| Возвращаемое значение | |
|---|---|
| Обновлённая переменная. |
| Исключения | |
|---|---|
TypeError | если sparse_delta не является IndexedSlices. |
scatter_nd_add
scatter_nd_add(
indices, updates, name=None
)
Применяет разреженное сложение к отдельным значениям или срезам в переменной.
ref - это Tensor с рангом P, и indices - это Tensor ранга Q.
indices должно быть целочисленным тензором, содержащим индексы в ref. Его форма должна быть [d_0, ..., d_{Q-2}, K], где 0 < K <= P.
Самый внутренний размер indices (длиной K) соответствует индексам элементов (если K = P) или срезов (если K < P) вдоль K-го измерения ref.
updates - это Tensor ранга Q-1+P-K с формой:
[d_0, ..., d_{Q-2}, ref.shape[K], ..., ref.shape[P-1]].
Например, предположим, что мы хотим добавить 4 разбросанных элемента к тензору ранга-1 к 8 элементам. В Python этот обновление будет выглядеть так:
ref = tf.Variable([1, 2, 3, 4, 5, 6, 7, 8]) indices = tf.constant([[4], [3], [1] ,[7]]) updates = tf.constant([9, 10, 11, 12]) add = ref.scatter_nd_add(indices, updates) with tf.compat.v1.Session() as sess: print sess.run(add)
Результат обновления ref будет таким:
[1, 13, 3, 14, 14, 6, 7, 20]
См. tf.scatter_nd для получения дополнительной информации о том, как выполнять обновления срезов.
| Аргументы | |
|---|---|
indices | Индексы, используемые в операции. |
updates | Значения, используемые в операции. |
name | имя операции. |
| Возвращаемое значение | |
|---|---|
| Обновлённая переменная. |
scatter_nd_max
scatter_nd_max(
indices, updates, name=None
)
Обновляет эту переменную максимальным значением из tf.IndexedSlices и самой себя.
ref - это Tensor с рангом P, и indices - это Tensor ранга Q.
indices должен быть целочисленным тензором, содержащим индексы в ref. Его форма должна быть [d_0, ..., d_{Q-2}, K], где 0 < K <= P.
Самый внутренний размер indices (длиной K) соответствует индексам элементов (если K = P) или срезов (если K < P) вдоль K-го измерения ref.
updates - это Tensor ранга Q-1+P-K с формой:
[d_0, ..., d_{Q-2}, ref.shape[K], ..., ref.shape[P-1]].
См. tf.scatter_nd для получения дополнительной информации о том, как выполнять обновления срезов.
| Аргументы | |
|---|---|
indices | Индексы, используемые в операции. |
updates | Значения, используемые в операции. |
name | имя операции. |
| Возвращаемое значение | |
|---|---|
| Обновлённая переменная. |
scatter_nd_min
scatter_nd_min(
indices, updates, name=None
)
Обновляет эту переменную значением min из tf.IndexedSlices и её собственным значением.
ref — это Tensor с рангом P, а indices — это Tensor ранга Q.
indices должен быть целочисленным тензором, содержащим индексы в ref. Он должен иметь форму [d_0, ..., d_{Q-2}, K], где 0 < K <= P.
Внутреннее измерение indices (с длиной K) соответствует индексам элементов (если K = P) или срезов (если K < P) по K-му измерению ref.
updates — это Tensor ранга Q-1+P-K с формой:
[d_0, ..., d_{Q-2}, ref.shape[K], ..., ref.shape[P-1]].
См. tf.scatter_nd для получения более подробной информации о том, как выполнять обновления срезов.
| Аргументы | |
|---|---|
indices | Индексы, используемые в операции. |
updates | Значения, используемые в операции. |
name | имя операции. |
| Возвращает | |
|---|---|
| Обновлённая переменная. |
scatter_nd_sub
scatter_nd_sub(
indices, updates, name=None
)
Применяет разреженное вычитание к отдельным значениям или срезам в переменной.
ref — это Tensor с рангом P, а indices — это Tensor с рангом Q.
indices должен быть целочисленным тензором, содержащим индексы в ref. Он должен иметь форму [d_0, ..., d_{Q-2}, K], где 0 < K <= P.
Внутреннее измерение indices (с длиной K) соответствует индексам элементов (если K = P) или срезов (если K < P) по K-му измерению ref.
updates — это Tensor ранга Q-1+P-K с формой:
[d_0, ..., d_{Q-2}, ref.shape[K], ..., ref.shape[P-1]].
Например, предположим, что мы хотим добавить 4 разбросанных элемента в тензор ранга-1 к 8 элементам. В Python это обновление будет выглядеть так:
ref = tf.Variable([1, 2, 3, 4, 5, 6, 7, 8]) indices = tf.constant([[4], [3], [1] ,[7]]) updates = tf.constant([9, 10, 11, 12]) op = ref.scatter_nd_sub(indices, updates) with tf.compat.v1.Session() as sess: print sess.run(op)
Результат обновления ref будет выглядеть так:
[1, -9, 3, -6, -6, 6, 7, -4]
См. tf.scatter_nd для получения более подробной информации о том, как выполнять обновления срезов.
| Аргументы | |
|---|---|
indices | Индексы, используемые в операции. |
updates | Значения, используемые в операции. |
name | имя операции. |
| Возвращает | |
|---|---|
| Обновлённая переменная. |
scatter_nd_update
scatter_nd_update(
indices, updates, name=None
)
Применяет разреженную операцию присваивания к отдельным значениям или срезам в переменной.
ref — это Tensor с рангом P, а indices — это Tensor с рангом Q.
indices должен быть целочисленным тензором, содержащим индексы в ref. Он должен иметь форму [d_0, ..., d_{Q-2}, K], где 0 < K <= P.
Внутреннее измерение indices (с длиной K) соответствует индексам элементов (если K = P) или срезов (если K < P) по K-му измерению ref.
updates — это Tensor ранга Q-1+P-K с формой:
[d_0, ..., d_{Q-2}, ref.shape[K], ..., ref.shape[P-1]].
Например, предположим, что мы хотим добавить 4 разбросанных элемента в тензор ранга-1 к 8 элементам. В Python это обновление будет выглядеть так:
ref = tf.Variable([1, 2, 3, 4, 5, 6, 7, 8]) indices = tf.constant([[4], [3], [1] ,[7]]) updates = tf.constant([9, 10, 11, 12]) op = ref.scatter_nd_update(indices, updates) with tf.compat.v1.Session() as sess: print sess.run(op)
Результат обновления ref будет выглядеть так:
[1, 11, 3, 10, 9, 6, 7, 12]
См. tf.scatter_nd для получения более подробной информации о том, как выполнять обновления срезов.
| Аргументы | |
|---|---|
indices | Индексы, используемые в операции. |
updates | Значения, используемые в операции. |
name | имя операции. |
| Возвращает | |
|---|---|
| Обновлённая переменная. |
scatter_sub
scatter_sub(
sparse_delta, use_locking=False, name=None
)
Вычитает tf.IndexedSlices из этой переменной.
| Аргументы | |
|---|---|
sparse_delta | tf.IndexedSlices, подлежащие вычитанию из этой переменной. |
use_locking | Если True, использовать блокировку во время операции. |
name | имя операции. |
| Возвращает | |
|---|---|
| Обновлённая переменная. |
| Возможные исключения | |
|---|---|
TypeError | если sparse_delta не является IndexedSlices. |
scatter_update
scatter_update(
sparse_delta, use_locking=False, name=None
)
Присваивает tf.IndexedSlices этой переменной.
| Аргументы | |
|---|---|
sparse_delta | tf.IndexedSlices, подлежащие присваиванию этой переменной. |
use_locking | Если True, использовать блокировку во время операции. |
name | имя операции. |
| Возвращает | |
|---|---|
| Обновлённая переменная. |
| Возможные исключения | |
|---|---|
TypeError | если sparse_delta не является IndexedSlices. |
set_shape
set_shape(
shape
)
Переопределяет форму этой переменной.
| Аргументы | |
|---|---|
shape | TensorShape, представляющий переопределённую форму. |
sparse_read
sparse_read(
indices, name=None
)
Читает значение этой переменной разреженно, используя gather.
to_proto
to_proto(
export_scope=None
)
Преобразует ResourceVariable в протокольный буфер VariableDef.
| Аргументы | |
|---|---|
export_scope | Необязательный string. Область именования, которая будет удалена. |
| Возможные исключения | |
|---|---|
RuntimeError | Если выполняется в режиме EAGER. |
| Возвращает | |
|---|---|
Протокольный буфер VariableDef или None, если Variable не находится в указанной области именования. |
value
value()
Кешированная операция, которая считывает значение этой переменной.
__abs__
__abs__(
name=None
)
__add__
__add__(
y
)
__and__
__and__(
y
)
__array__
__array__(
dtype=None
)
Разрешает прямое преобразование в массив NumPy.
np.array(tf.Variable([1.0])) array([1.], dtype=float32)
| Возвращает | |
|---|---|
| Значение переменной в виде массива NumPy. |
__bool__
__bool__()
__div__
__div__(
y
)
__eq__
__eq__(
other
)
Сравнивает две переменные попарно на равенство.
__floordiv__
__floordiv__(
y
)
__ge__
__ge__(
y: Annotated[Any, tf.raw_ops.Any],
name=None
) -> Annotated[Any, tf.raw_ops.Any]
Возвращает логическое значение (x >= y) поэлементно.
Примечание: math.greater_equal поддерживает трансляцию. Дополнительную информацию о трансляции см. здесь
Пример:
x = tf.constant([5, 4, 6, 7]) y = tf.constant([5, 2, 5, 10]) tf.math.greater_equal(x, y) ==> [True, True, True, False] x = tf.constant([5, 4, 6, 7]) y = tf.constant([5]) tf.math.greater_equal(x, y) ==> [True, False, True, True]
| Аргументы | |
|---|---|
x | Объект Tensor. Должен быть одного из следующих типов: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64. |
y | Объект Tensor. Должен иметь тот же тип, что и x. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Объект Tensor типа bool. |
__getitem__
__getitem__(
slice_spec
)
Создает объект помощника среза для заданной переменной.
Это позволяет создавать подмассив из части текущего содержимого переменной. См. tf.Tensor.getitem для подробных примеров срезов.
Эта функция также позволяет выполнять присвоение срезу. Это аналогично функционалу __setitem__ в Python. Однако синтаксис отличается, чтобы пользователь мог захватить операцию присвоения для группировки или передачи в sess.run() в TF1. Например,
import tensorflow as tf A = tf.Variable([[1,2,3], [4,5,6], [7,8,9]], dtype=tf.float32) print(A[:2, :2]) # => [[1,2], [4,5]] A[:2,:2].assign(22. * tf.ones((2, 2)))) print(A) # => [[22, 22, 3], [22, 22, 6], [7,8,9]]
Обратите внимание, что присвоения в настоящее время не поддерживают семантику трансляции NumPy.
| Аргументы | |
|---|---|
var | Объект ops.Variable. |
slice_spec | Аргументы для Tensor.getitem. |
| Возвращает | |
|---|---|
Соответствующий срез "tensor", основанный на "slice_spec". Как оператор. Оператор также имеет метод assign(), который можно использовать для генерации оператора присваивания. |
| Исключения | |
|---|---|
ValueError | Если диапазон среза имеет отрицательную длину. |
TypeError | TypeError: Если индексы среза не являются int, slice, ellipsis, tf.newaxis или тензорами int32/int64. |
__gt__
__gt__(
y: Annotated[Any, tf.raw_ops.Any],
name=None
) -> Annotated[Any, tf.raw_ops.Any]
Возвращает логическое значение (x > y) поэлементно.
Примечание: math.greater поддерживает трансляцию. Дополнительную информацию о трансляции см. здесь
Пример:
x = tf.constant([5, 4, 6]) y = tf.constant([5, 2, 5]) tf.math.greater(x, y) ==> [False, True, True] x = tf.constant([5, 4, 6]) y = tf.constant([5]) tf.math.greater(x, y) ==> [False, False, True]
| Аргументы | |
|---|---|
x | Объект Tensor. Должен быть одного из следующих типов: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64. |
y | Объект Tensor. Должен иметь тот же тип, что и x. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Объект Tensor типа bool. |
__invert__
__invert__(
name=None
)
__iter__
__iter__()
При выполнении в режиме eager, итерирует по значению переменной.
__le__
__le__(
y: Annotated[Any, tf.raw_ops.Any],
name=None
) -> Annotated[Any, tf.raw_ops.Any]
Возвращает логическое значение (x <= y) поэлементно.
Примечание: math.less_equal поддерживает трансляцию. Дополнительную информацию о трансляции см. здесь
Пример:
x = tf.constant([5, 4, 6]) y = tf.constant([5]) tf.math.less_equal(x, y) ==> [True, True, False] x = tf.constant([5, 4, 6]) y = tf.constant([5, 6, 6]) tf.math.less_equal(x, y) ==> [True, True, True]
| Аргументы | |
|---|---|
x | Объект Tensor. Должен быть одного из следующих типов: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64. |
y | Объект Tensor. Должен иметь тот же тип, что и x. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Объект Tensor типа bool. |
__lt__
__lt__(
y: Annotated[Any, tf.raw_ops.Any],
name=None
) -> Annotated[Any, tf.raw_ops.Any]
Возвращает логическое значение (x < y) поэлементно.
Примечание: math.less поддерживает трансляцию. Дополнительную информацию о трансляции см. здесь
Пример:
x = tf.constant([5, 4, 6]) y = tf.constant([5]) tf.math.less(x, y) ==> [False, True, False] x = tf.constant([5, 4, 6]) y = tf.constant([5, 6, 7]) tf.math.less(x, y) ==> [False, True, True]
| Аргументы | |
|---|---|
x | Объект Tensor. Должен быть одного из следующих типов: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64. |
y | Объект Tensor. Должен иметь тот же тип, что и x. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Объект типа bool. |
__matmul__
__matmul__(
y
)
__mod__
__mod__(
y
)
__mul__
__mul__(
y
)
__ne__
__ne__(
other
)
Сравнивает два массива поэлементно на равенство.
__neg__
__neg__(
name=None
) -> Annotated[Any, tf.raw_ops.Any]
Вычисляет числовое отрицание поэлементно.
То есть, \(y = -x\).
| Аргументы | |
|---|---|
x | Массив. Должен быть одного из следующих типов: bfloat16, half, float32, float64, int8, int16, int32, int64, complex64, complex128. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Массив. Имеет тот же тип, что и x. |
__nonzero__
__nonzero__()
__or__
__or__(
y
)
__pow__
__pow__(
y
)
__radd__
__radd__(
x
)
__rand__
__rand__(
x
)
__rdiv__
__rdiv__(
x
)
__rfloordiv__
__rfloordiv__(
x
)
__rmatmul__
__rmatmul__(
x
)
__rmod__
__rmod__(
x
)
__rmul__
__rmul__(
x
)
__ror__
__ror__(
x
)
__rpow__
__rpow__(
x
)
__rsub__
__rsub__(
x
)
__rtruediv__
__rtruediv__(
x
)
__rxor__
__rxor__(
x
)
__sub__
__sub__(
y
)
__truediv__
__truediv__(
y
)
__xor__
__xor__(
y
)
© 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/experimental/dtensor/DVariable