Layers

class symmys.layers.QuaternionRotation(num_rotations, quaternion_dim=6, include_reverse=True, *args, **kwargs)[source]

Perform rotations of a set of input points, parameterized by unit quaternions.

This layer takes a point cloud as input and produces rotated images of all the points in the point cloud. The rotations that are applied are parameterized by unit quaternions, which are treated as layer weights to be optimized.

Quaternions are optimized in a higher dimension and then projected down through a sum operation to improve the speed of the optimization process.

Parameters:
  • num_rotations – Number of rotation quaternions to use
  • quaternion_dim – Pre-projection dimension of quaternion parameters
  • include_reverse – If True, also output points rotated by the conjugate quaternion for each learned quaternion
class symmys.layers.QuaternionRotoinversion(num_rotations, quaternion_dim=6, include_reverse=True, *args, **kwargs)[source]

Learn rotoinversions, rather than rotations. Otherwise identical to QuaternionRotation.