Skip to content

Upgrading einops 0.6 to 0.7

Breaking0.6.1 → 0.7.0Breaking1New3Changed6Fixed1Other4

BreakingUpgrade verdict

1 breaking change.

  • Code using einops with Gluon will no longer work.
1 item needs code or config changes

Python requirement changed in 0.6.2rc0: >=3.7 → >=3.8.

Breaking1
Drops Gluon support as previously announced.

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • added: function asnumpy(tensor: Tensor)
  • added: function pack(tensors: Sequence[Tensor], pattern: str) -> Tuple[Tensor, List[Shape]]
  • added: function rearrange(tensor: Tensor, pattern: str, **axes_lengths) -> Tensor
  • added: function reduce(tensor: Tensor, pattern: str, reduction: Reduction, **axes_lengths: int) -> Tensor
  • added: function repeat(tensor: Tensor, pattern: str, **axes_lengths) -> Tensor
  • added: function unpack(tensor: Tensor, packed_shapes: List[Shape], pattern: str) -> List[Tensor]
  • added: variable Shape
  • removed: function is_ellipsis_not_in_parenthesis(group: List[int]) -> bool
  • changed: constructor TransformRecipe(elementary_axes_lengths: List[int], input_composite_axes: List[Tuple[List[int], List[int]]], reduced_elementary_axes: List[int], axes_permutation: List[int], added_axes: Dict[int, int], output_composite_axes: List[List[int]], ellipsis_position_in_lhs: Optional[int]=…) → constructor TransformRecipe(elementary_axes_lengths: List[int], axis_name2elementary_axis: Dict[str, int], input_composition_known_unknown: List[Tuple[List[int], List[int]]], axes_permutation: List[int], first_reduced_axis: int, added_axes: Dict[int, int], output_composite_axes: List[List[int]])
  • changed: function einsum(__tensor: Tensor, __pattern: str) -> Tensor | (__tensor1: Tensor, __tensor2: Tensor, __pattern: str) -> Tensor | (__tensor1: Tensor, __tensor2: Tensor, __tensor3: Tensor, __pattern: str) -> Tensor | (__tensor1: Tensor, __tensor2: Tensor, __tensor3: Tensor, __tensor4: Tensor, __pattern: str) -> Tensor → function einsum(tensor: Tensor, pattern: str, /) -> Tensor | (tensor1: Tensor, tensor2: Tensor, pattern: str, /) -> Tensor | (tensor1: Tensor, tensor2: Tensor, tensor3: Tensor, pattern: str, /) -> Tensor | (tensor1: Tensor, tensor2: Tensor, tensor3: Tensor, tensor4: Tensor, pattern: str, /) -> Tensor
  • changed: function reduce(tensor: Tensor, pattern: str, reduction: Reduction, **axes_lengths: int) -> Tensor → function reduce(tensor: Union[Tensor, List[Tensor]], pattern: str, reduction: Reduction, **axes_lengths: int) -> Tensor
  • changed: function repeat(tensor: Tensor, pattern: str, **axes_lengths) -> Tensor → function repeat(tensor: Union[Tensor, List[Tensor]], pattern: str, **axes_lengths) -> Tensor
  • added: variable FakeHashableAxesLengths
  • added: variable HashableAxesLengths
  • removed: method RearrangeMixin.recipe() -> TransformRecipe
  • removed: method ReduceMixin.recipe() -> TransformRecipe
  • added: export get_backend
  • added: method RearrangeMixin.multirecipe() -> Dict[int, TransformRecipe]
  • added: method ReduceMixin.multirecipe() -> Dict[int, TransformRecipe]
  • removed: class EinMix(_EinmixMixin, mxnet.gluon.HybridBlock)
  • removed: class Rearrange(RearrangeMixin, mxnet.gluon.HybridBlock)
  • removed: class Reduce(ReduceMixin, mxnet.gluon.HybridBlock)
  • removed: method EinMix.hybrid_forward(F, x, *args, **kwargs)
  • removed: method Rearrange.hybrid_forward(F, x)
  • removed: method Reduce.hybrid_forward(F, x)