Thanks for tuning in to Google I/O. View all sessions on demand

# tfg.math.interpolation.slerp.quaternion_weights

Calculates slerp weights for two normalized quaternions.

Given a percent and two normalized quaternions, this function returns the slerp weights. It can also produce extrapolation weights when percent is outside of the [0, 1] range. It reduces to lerp when input quaternions are almost parallel or anti-parallel. Input quaternions are assumed to be normalized. The tf.graphics debug flag TFG_ADD_ASSERTS_TO_GRAPH defined in tfg_flags.py can be set to add assertions to the graph that check whether the inputs are normalized, and whether Inf or Nan values are produced.

In the following, A1 to An are optional batch dimensions.

`quaternion1` A tensor of shape `[A1, ... , An, 4]` storing normalized quaternions in its last dimension.
`quaternion2` A tensor of shape `[A1, ... , An, 4]` storing normalized quaternions in its last dimension.
`percent` A `float` or a tensor with a shape broadcastable to the shape ```[A1, ... , An]```.
`eps` A `float` used to make operations safe. When left as None, the function automatically picks the best epsilon based on the dtype and the operation.
`name` A name for this op. Defaults to "quaternion_weights".

`ValueError` If the shapes of quaternions do not match, if the last dimensions of quaternions are not 4, or if percent is neither a float, nor a tensor with last dimension 1.

Two tensors of shape `[A1, ... , An, 1]` each, which are the two slerp weights for each quaternion.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]