@Target(value=TYPE)
@Retention(value=RUNTIME)
public @interface Dimensions
This is intended to be used on classes implementing the Tensorbacked interface to define the desired dimensions on
them. It will be used by the framework, to decide e.g. what dimensions to reduce and to perform precondition-checks
before creating the corresponding instances. It takes an array of classes as argument, to describe which dimensions
the tensor backed instance expects.