Spherical linear interpolation (slerp) between two unnormalized vectors.
tfg.math.interpolation.slerp.vector_weights(
vector1: type_alias.TensorLike,
vector2: type_alias.TensorLike,
percent: Union[type_alias.Float, type_alias.TensorLike],
eps: Optional[type_alias.Float] = None,
name: str = 'vector_weights'
) -> Tuple[tf.Tensor, tf.Tensor]
This function applies geometric slerp to unnormalized vectors by first
normalizing them to return the interpolation weights. It reduces to lerp when
input vectors are exactly anti-parallel.
Note |
In the following, A1 to An are optional batch dimensions.
|
Args |
vector1
|
A tensor of shape [A1, ... , An, M] , which stores a normalized
vector in its last dimension.
|
vector2
|
A tensor of shape [A1, ... , An, M] , which stores a normalized
vector in its last dimension.
|
percent
|
A float or tensor with shape broadcastable to the shape of input
vectors.
|
eps
|
A small float for operation safety. If left None, its value is
automatically selected using dtype of input vectors.
|
name
|
A name for this op. Defaults to "vector_weights".
|
Raises |
ValueError
|
if the shape of vector1 , vector2 , or percent is not
supported.
|
Returns |
Two tensors of shape [A1, ... , An, 1] , representing interpolation weights
for each input vector.
|