View Source Changelog
v0-5-3-2023-04-14
v0.5.3 (2023-04-14)
bug-fixes
Bug fixes
- [Nx.Defn] Fix compilation error when Elixir compiler has column tracking enabled
- [Nx.LinAlg] Fix cases where determinant could return NaN
- [Nx.LinAlg] Fix SVD when working with f16 and bf16
v0-5-2-2023-03-21
v0.5.2 (2023-03-21)
enhancements
Enhancements
- [Nx.Random] Add
stop_grad
toNx.Random
creation functions - [Nx.Serving] Reduce references sent through serving
bug-fixes-1
Bug fixes
- [Nx] Fix
Nx.mode
with:axis
option
v0-5-1-2023-02-18
v0.5.1 (2023-02-18)
Require Elixir v1.14.
enhancements-1
Enhancements
- [Nx] Support any container or lazy container in
stack
/concatenate
- [Nx] Add
Nx.top_k/2
- [Nx] Add
Nx.to_list/1
- [Nx] Improve shape validation in
Nx.concatenate/2
- [Nx.Constants] Add
pi
,e
, andeuler_gamma
- [Nx.Random] Raise if a non-unary rank tensor is given as probabilities to
Nx.Random.choice/4
- [Nx.Random] Make
samples
optional inNx.Random.choice/3
v0-5-0-2023-02-10
v0.5.0 (2023-02-10)
enhancements-2
Enhancements
- [Nx] Support serialization of containers
- [Nx] Rename
Nx.power
toNx.pow
- [Nx] Add
Nx.reflect
andNx.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
andNx.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
andfrom_numpy_archive
have been replaced byload_numpy!
andload_numpy_archive!
- [Nx.Defn.Evaluator] Do not force GC on evaluator
v0-4-2-2023-01-13
v0.4.2 (2023-01-13)
enhancements-3
Enhancements
- [Nx] Allow tensors to be given on
Nx.tensor/2
- [Nx] Add
Nx.with_default_backend/2
- [Nx] Add
:axes
option toNx.flatten/2
- [Nx] Add
:axes
option toNx.weighted_mean/2
- [Nx.Defn] Warn if
Nx.tensor/2
first-argument is not constant inside defn - [Nx.LinAlg] Add
Nx.LinAlg.pinv/1
- [Nx.LinAlg] Optimize and handle more cases in
Nx.LinAlg.svd/1
bug-fixes-2
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-4
Enhancements
- [Nx] Add
Nx.Batch
andNx.Serving
- [Nx] Implement
Nx.Container
for numbers, complex, and tensors for completeness - [Nx] Support batches in
Nx.eye/2
bug-fixes-3
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
andreduce
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-5
Enhancements
- [Nx] Add
Nx.rename/2
,Nx.median/2
,Nx.weighted_mean/3
, andNx.mode/2
- [Nx] Implement cumulative operations using associative scan for improved performance
- [Nx.Constants] Add
min
andmax
- [Nx.Defn] Allow lists and functions anywhere as arguments in
defn
,jit
andcompile
- [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
anddebug_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
, andtriangular_solve
- [Nx.Random] Support pseudo random number generators algorithms
bug-fixes-4
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
andNx.iota/2
- [Nx] Deprecate
Nx.random_uniform/2
andNx.random_normal/2
v0-3-0-2022-08-13
v0.3.0 (2022-08-13)
enhancements-6
Enhancements
- [Nx] Improve support for non-finite values in
Nx.broadcast/2
,Nx.all_close/2
, and more - [Nx] Add
Nx.is_nan/1
andNx.is_infinite/1
- [Nx] Support booleans in
Nx.tensor/2
- [Nx] Add
Nx.fft/2
andNx.ifft/2
- [Nx] Rename
Nx.logistic/1
toNx.sigmoid/1
- [Nx] Add
Nx.put_diagonal/3
andNx.indexed_put/3
- [Nx] Add
:reverse
to cummulative functions - [Nx] Add
Nx.to_batched/3
which returns a stream - [Nx] Support batched tensors in
Nx.LinAlg.qr/1
- [Nx.Defn] Add
Nx.Defn.compile/3
for precompiling expressions - [Nx.Defn] Add
deftransform/2
anddeftransformp/2
for easier to define transforms - [Nx.Defn] Add
div/2
- [Nx.Defn] Support
case/2
,raise/1
, andraise/2
- [Nx.Defn] Support booleans in
if
,cond
, and boolean operators - [Nx.Defn] Perform branch elimitation in
if
andcond
and execute branches lazily - [Nx.Defn.Evaluator] Garbage collect after evaluation (it can be disabled by setting the
:garbage_collect
compiler option to false)
deprecations-1
Deprecations
- [Nx]
Nx.to_batched_list/3
is deprecated in favor ofNx.to_batched/3
- [Nx.Defn]
transform/2
is deprecated in favor ofdeftransform/2
anddeftransformp/2
- [Nx.Defn]
assert_shape/2
andassert_shape_pattern/2
are deprecated in favor ofcase/2
+raise/2
- [Nx.Defn]
inspect_expr/1
andinspect_value/1
are deprecated in favor ofprint_expr/1
andprint_value/1
respectively
v0-2-1-2022-06-04
v0.2.1 (2022-06-04)
enhancements-7
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-5
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-8
Enhancements
- [Nx] Support atom notation as the type option throughout the API (for example,
:u8
,:f64
, etc) - [Nx] Add support for complex numbers (c64, c128)
- [Nx] Add
Nx.cumulative_sum/2
,Nx.cumulative_product/2
,Nx.cumulative_min/2
,Nx.cumulative_max/2
- [Nx] Add
Nx.conjugate/1
,Nx.phase/1
,Nx.real/1
, andNx.imag/1
- [Nx] Initial support for NaN and Infinity
- [Nx] Add
:axis
option toNx.shuffle/2
- [Nx] Add
Nx.axis_index/2
- [Nx] Add
Nx.variance/2
toNx.standard_deviation/2
- [Nx] Rename
Nx.slice_axis/3
toNx.slice_along_axis/4
- [Nx.Backend] Add support for optional backends
- [Nx.Constants] Provide a convenient module to host constants
- [Nx.Defn] Improve error messages throughout the compiler
v0-1-0-2022-01-06
v0.1.0 (2022-01-06)
First release.