View Source Changelog

v0-5-1-2023-02-18

v0.5.1 (2023-02-18)

Require Elixir v1.14.

enhancements

Enhancements

v0-5-0-2023-02-10

v0.5.0 (2023-02-10)

enhancements-1

Enhancements

  • [Nx] Support serialization of containers
  • [Nx] Rename Nx.power to Nx.pow
  • [Nx] Add Nx.reflect and Nx.linspace
  • [Nx.Defn] Raise at compile time for invalid defn if/cond usage
  • [Nx.LinAlg] Support full_matrices? in SVD
  • [Nx.LinAlg] Add Nx.LinAlg.matrix_rank
  • [Nx.Random] Add Nx.Random.choice and Nx.Random.shuffle
  • [Nx.Serving] Add distributed² serving by distributing over devices (GPUs/CPUs) as well as nodes
  • [Nx.Serving] Add telemetry to Nx.Serving callbacks

backwards-incompatible-changes

Backwards incompatible changes

  • [Nx] from_numpy and from_numpy_archive have been replaced by load_numpy! and load_numpy_archive!
  • [Nx.Defn.Evaluator] Do not force GC on evaluator

v0-4-2-2023-01-13

v0.4.2 (2023-01-13)

enhancements-2

Enhancements

bug-fixes

Bug fixes

  • [Nx] Respect fortran order in loading from numpy
  • [Nx.Defn] Render containers in compile error type+shape mismatch
  • [Nx.Defn] Restore pdict state after compilation

v0-4-1-2022-12-07

v0.4.1 (2022-12-07)

enhancements-3

Enhancements

bug-fixes-1

Bug fixes

  • [Nx] Keep input tensor names on associative scan
  • [Nx.BinaryBackend] Differentiate between complex and real output in as_type
  • [Nx.BinaryBackend] Fix loss of precision in Nx.complex/2
  • [Nx.BinaryBackend] Preserve NaNs in window and reduce operations
  • [Nx.Random] Do not return infinity on normal/2 for f16

v0-4-0-2022-10-25

v0.4.0 (2022-10-25)

enhancements-4

Enhancements

  • [Nx] Add Nx.rename/2, Nx.median/2, Nx.weighted_mean/3, and Nx.mode/2
  • [Nx] Implement cumulative operations using associative scan for improved performance
  • [Nx.Constants] Add min and max
  • [Nx.Defn] Allow lists and functions anywhere as arguments in defn, jit and compile
  • [Nx.Defn] Add Nx.LazyContainer that allows a data-structure to lazily define tensors
  • [Nx.Defn] Allow tensors and ranges as generators inside while
  • [Nx.Defn] Add debug_expr/2 and debug_expr_apply/3
  • [Nx.Defn.Evaluator] Calculate cache lifetime to reduce memory usage on large numerical programs
  • [Nx.LinAlg] Handle Hermitian matrices in eigh
  • [Nx.LinAlg] Support batched operations in adjoint, cholesky, determinant, eigh, invert, lu, matrix_power, solve, svd, and triangular_solve
  • [Nx.Random] Support pseudo random number generators algorithms

bug-fixes-2

Bug fixes

  • [Nx] Perform window_reduce/reduce operations from infinity and negative infinity
  • [Nx.Defn] Ensure defnp emits warnings when unused
  • [Nx.Defn] Warn on unused variables in while

deprecations

Deprecations

  • [Nx] Deprecate tensor as shape in Nx.eye/2 and Nx.iota/2
  • [Nx] Deprecate Nx.random_uniform/2 and Nx.random_normal/2

v0-3-0-2022-08-13

v0.3.0 (2022-08-13)

enhancements-5

Enhancements

deprecations-1

Deprecations

  • [Nx] Nx.to_batched_list/3 is deprecated in favor of Nx.to_batched/3
  • [Nx.Defn] transform/2 is deprecated in favor of deftransform/2 and deftransformp/2
  • [Nx.Defn] assert_shape/2 and assert_shape_pattern/2 are deprecated in favor of case/2 + raise/2
  • [Nx.Defn] inspect_expr/1 and inspect_value/1 are deprecated in favor of print_expr/1 and print_value/1 respectively

v0-2-1-2022-06-04

v0.2.1 (2022-06-04)

enhancements-6

Enhancements

  • [Nx] Improve support for non-finite values in Nx.tensor/1
  • [Nx] Use iovec on serialization to avoid copying binaries
  • [Nx.BinaryBackend] Improve for complex numbers in Nx.tensor/1
  • [Nx.Defn] Improve for complex numbers inside defn

bug-fixes-3

Bug fixes

  • [Nx] Properly normalize type in Nx.from_binary/3
  • [Nx.Defn] Raise on Nx.Defn.Expr as JIT argument
  • [Nx.Defn.Evaluator] Handle concatenate arguments on evaluator

v0-2-0-2022-04-28

v0.2.0 (2022-04-28)

This version requires Elixir v1.13+.

enhancements-7

Enhancements

v0-1-0-2022-01-06

v0.1.0 (2022-01-06)

First release.