Spec-Zone.ru › TensorFlow 1.15

tf.keras.backend.batch_dot

Посмотреть исходный код на GitHub

Вычисление точечного произведения по наборам.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.keras.backend.batch_dot, `tf.compat.v2.keras.backend.batch_dot`

tf.keras.backend.batch_dot(
    x, y, axes=None
)

batch_dot используется для вычисления скалярного произведения x и y, когда x и y представляют данные в пакете, то есть имеют форму (batch_size, :). batch_dot приводит к тензору или переменной с меньшим числом измерений, чем у входных данных. Если число измерений сокращается до 1, мы используем expand_dims для обеспечения того, что ndim не меньше 2.

Аргументы
x Тензор или переменная Keras с ndim >= 2.
y Тензор или переменная Keras с ndim >= 2.
axes Список (или единственное) целое число с целевыми измерениями. Длины axes[0] и axes[1] должны быть одинаковыми.
Возвращаемое значение
Тензор с формой, равной конкатенации формы x (без измерения, по которому суммировалось) и формы y (без размерности пакета и размера, по которому суммировалось). Если окончательный ранг равен 1, мы преобразуем его в (batch_size, 1).

Примеры:

Предположим, что x = [[1, 2], [3, 4]] и y = [[5, 6], [7, 8]] batch_dot(x, y, axes=1) = [[17, 53]], что является главной диагональю x.dot(y.T), хотя нам никогда не нужно вычислять внедиагональные элементы.

Вычисление формы: пусть форма x равна (100, 20), а форма y равна (100, 30, 20). Если axes равно (1, 2), для поиска формы результирующего тензора переберите каждое измерение в форме x и форме y:

  • x.shape[0] : 100 : добавить в форму результата
  • x.shape[1] : 20 : не добавлять в форму результата, измерение 1 у x было суммировано. (dot_axes[0] = 1)
  • y.shape[0] : 100 : не добавлять в форму результата, всегда игнорировать первое измерение у y
  • y.shape[1] : 30 : добавить в форму результата
  • y.shape[2] : 20 : не добавлять в форму результата, измерение 2 у y было суммировано. (dot_axes[1] = 2) output_shape = (100, 30)
x_batch = K.ones(shape=(32, 20, 1))
y_batch = K.ones(shape=(32, 30, 20))
xy_batch_dot = K.batch_dot(x_batch, y_batch, axes=[1, 2])
K.int_shape(xy_batch_dot)
(32, 1, 30)

© 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/r1.15/api_docs/python/tf/keras/backend/batch_dot

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API