0.5.2: More primitive operations
Highlights from README:
- Supports a lot of primitive operations (including ternary ops), and ternary tensor operations.
%cdand%opsupport both curried and uncurried operator application syntax.- More flexible gradient construction via the
%cdsyntax (better projections inference). - Works on Native Windows with the C compiler backend (but CUDA backend blocked by cudajit still).
Details from the changelog:
Added
- Lots of new primitive ops:
- Unary:
Satur01 | Exp | Log | Exp2 | Log2 | Sin | Cos | Sqrt | Recip | Recip_sqrt | Neg | Tanh_approx | Not - Binary:
Satur01_gate | Max | Min | Mod | Cmplt | Cmpeq | Cmpne - Ternary:
Where | FMA(non-accumulating)
- Unary:
- Ternary tensor operations.
- A differentiable
whereoperation.
- A differentiable
- More flexible gradient construction via the
%cdsyntax (better projections inference). - CC backend piggy-backing on OCaml's C compiler (consistent across OSes).
Changed
- Updated to printbox 0.12, with upstreamed graphing.
-pthread->-lpthreadinc_library_flagsindunefiles.- Removed Numpy support for easier compatibility on native Windows.
- Unary (primitive) ops and relu are now named, not operator syntax.
- Refactored
%cdparsing of primitive ops. %cdand%opsupport both curried and uncurried operator application syntax.- Updated to ppx_minidebug 2.2.0 with support for cross-run diffing.
Fixed
- Numbers text rendering (consistent across OSes).
- Moved closing row variables to stage 3, because stage 2 may need to process inequalities generating more LUBs.
- Don't unnecessarily prevent bytecode-only build targets.