Batch normalization, more concurrency, & NAG compiler support
This release adds
- A
tensor_range_t
type that π§βπΎ π±- Encapsulates input and output tensor component minima and maxima,
- Provides type-bound
map_to_training_range
andmap_from_training_range
procedures for mapping tensors to and from the unit interval[0,1]
, and π€Ί - Provides a type-bound
in_range
procedure that users can employ to check whether inference input or output data involve extrapolation beyond the respective ranges employed in training.
- BREAKING CHANGE: the network JSON file format has been updated to include
input_range
andoutput_range
objects. The JSON file reader in this release may fail to read or write network files that are written or read by older versions of Inference-Engine. π ποΈ π - Automatic use of the aforementioned mapping capability during inference. π§
- Enhanced concurrency to improve performance: π
- Additional use of
do concurrent
in the training algorithm and π π - Enabling building with OpenMP in the
setup.sh
script. ποΈ π·ββοΈ
- Additional use of
- Additional compiler support: this is the first release that builds with the NAG Fortran compiler starting with compiler Build 7202.
What's Changed
- Simplify app: rm redundant procedures by @rouson in #102
- Concurrent inference example by @rouson in #103
- Exploit additional concurrency in the training algorithm by @rouson in #105
- feat(example): add nested do-loop inferences by @rouson in #106
- chore(examples): match program names to file names by @rouson in #109
- feat(infer): allow non-type-bound invocations by @rouson in #110
- doc(README): minimum gfortran version 13 by @rouson in #111
- Add new fpm subproject
icar-trainer
by @ktras in #108 - Enable OpenMP in setup script & work around related compiler bug by @rouson in #114
- fix(run-fpm.sh): revert to copying header into build dir by @rouson in #115
- Remove module keyword from abstract interface by @ktras in #116
- Compute & output tensor histograms in columnar format & add gnuplot script by @rouson in #118
- Bugfixes for nag by @ktras in #119
- fix(examples): .f90->.F90 to preprocess files by @rouson in #121
- Get beyond one type of Intel bugs by @ktras in #120
- Nagfor workaround by @rouson in #122
- chore(test): rm nagfor compiler workaround by @rouson in #129
- Workaround intel bug by @ktras in #128
- doc(README): add compilers in testing instructions by @rouson in #130
- build(fpm.toml): increment dependency versions by @rouson in #131
- More robust Adam optimizer test by @rouson in #134
- Ifx workarounds + train longer in Adam test to pass with nagfor by @rouson in #135
- Store tensor ranges by @rouson in #137
- build(random_init): rm final nagfor workaround by @rouson in #136
- Feature: Add input/output tensor component ranges to network files by @rouson in #138
- Feature: map input to unit range & output tensors from unit range in inference_engine_t infer procedure by @rouson in #139
- Normalize in training by @rouson in #140
- Fix training restarts by @rouson in #141
New Contributors
Full Changelog: 0.10.0...0.11.0