Upgrading einops 0.6 to 0.7
Breaking0.6.1 → 0.7.0Breaking1New3Changed6Fixed1Other4
BreakingUpgrade verdict
1 breaking change.
In plain terms
- Code using einops with Gluon will no longer work.
Must act 1 item needs code or config changes
Python requirement changed in 0.6.2rc0: >=3.7 → >=3.8.
What you must change
Breaking1
Drops Gluon support as previously announced.
API changes
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)