tf.keras.backend.batch_dot
| Посмотреть исходный код на GitHub |
Вычисление точечного произведения по наборам.
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