tf.keras.layers.Dot
| Просмотреть исходный код на GitHub |
Слой, вычисляющий скалярное произведение между образцами в двух тензорах.
tf.keras.layers.Dot(
axes, normalize=False, **kwargs
)
Например, если слой применяется к списку двух тензоров a и b формы (batch_size, n), то выходной тензор будет иметь форму (batch_size, 1), где каждое значение i будет скалярным произведением между a[i] и b[i].
x = np.arange(10).reshape(1, 5, 2)
print(x)
[[[0 1]
[2 3]
[4 5]
[6 7]
[8 9]]]
y = np.arange(10, 20).reshape(1, 2, 5)
print(y)
[[[10 11 12 13 14]
[15 16 17 18 19]]]
tf.keras.layers.Dot(axes=(1, 2))([x, y])
<tf.Tensor: shape=(1, 2, 2), dtype=int64, numpy=
array([[[260, 360],
[320, 445]]])>
x1 = tf.keras.layers.Dense(8)(np.arange(10).reshape(5, 2)) x2 = tf.keras.layers.Dense(8)(np.arange(10, 20).reshape(5, 2)) dotted = tf.keras.layers.Dot(axes=1)([x1, x2]) dotted.shape TensorShape([5, 1])
| Аргументы | |
|---|---|
axes | Целое число или кортеж целых чисел, ось или оси, вдоль которых вычисляется скалярное произведение. Если кортеж, должен содержать два целых числа, соответствующие желаемой оси от первого входного тензора и желаемой оси от второго входного тензора соответственно. Обратите внимание, что размер двух выбранных осей должен совпадать. |
normalize | Нужно ли выполнить L2-нормализацию образцов вдоль оси скалярного произведения перед вычислением скалярного произведения. Если установлено в True, то выходное значение скалярного произведения — косинусное сходство между двумя образцами. |
**kwargs | Стандартные ключевые аргументы слоя. |
© 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/versions/r2.9/api_docs/python/tf/keras/layers/Dot