Usability improvements
- Add
__version__
attribute (#17) - Shape results appropriately for multiclass classification (#16)
- Add default LOG handler, to make C API easier to use (#19)
- Allow batches smaller than
nthread
Bug fixes
- Python 2.7 compatibility fix (#14)
- handle categorical splits with empty
left_categories
- Fix
create_shared()
to be compatible with shellszsh
andfish
(#18)
New feature
- (Experimental) Export model as XGBoost model file, as per request in #14.
- Implement a custom thread pool to improve prediction performance
- Amortize thread launch cost
- Pin down threads to physical cores and prevent migration
- Accommodate infinite thresholds in LightGBM models
Major re-factoring of the backend code
- New code generator, based on Abstract Syntax Trees (AST)
- Build AST first
- Iteratively transform AST
- Finally convert AST into C/JAVA program
- Improved abstraction and modularity (no more spaghetti code!)
- It's now much easier to "edit" tree prediction logic: you'd just need to operate on a tree graph. Re-factoring was a worthwhile investment for future research. For instance, we could create a new node type in AST representing an AVX operation. A group of conditional nodes can be converted into the AVX node with equivalent semantics.
- Support for Java: see example at https://github.com/hcho3/treelite-java-example
BREAKING CHANGES
- Prediction library generated by previous versions are NOT compatible with
the current version. You will have to run
export_lib()
orcompile()
again.
New features:
- Now categorical features with more than 64 categories are supported.
- It is now possible to specify variants of GCC and Clang for
export_lib
;gcc-5
,gcc-7
,arm-linux-gnueabi-gcc
, and so forth.
Bug fixes:
- Fix segmentation fault when
parallel_comp
is set to a high value
A few minor fixes:
- Disable Link-Time Optimization (LTO) by default, to decrease compilation time
- Use /bin/sh when the environment variable SHELL is not set
- Enable relative path in predictor constructor
- Increase precision for floating-point values
- Initial release