DJL v0.10.0 Release
DJL v0.10.0 brings the new engines PaddlePaddle 2.0 and TFLite 2.4.1, updates PyTorch to 1.7.1, and introduces several new features:
Key Features
-
Supports PaddlePaddle 2.0 engine inference: now you can run prediction using models trained in PaddlePaddle.
-
Introduces the PaddlePaddle Model Zoo with new models. Please see examples for how to run them.
-
Upgrades TFLite engine to v2.4.1. You can convert TensorFlow SavedModel to TFLite using this converter.
-
Introduces DJL Central to easily browse and view models available in DJL’s ModelZoo.
-
Introduces generic Bert Model in DJL (#105)
-
Upgrades PyTorch to 1.7.1
Enhancement
- Enables listing input and output classes in ModelZoo lookup (#624)
- Improves PyTorch performance by using PyTorch index over engine agnostic solution (#638)
- Introduces various fixes and improvements for MultiThreadedBenchmark (#617)
- Makes the default engine deterministic when multiple engines are in dependencies(#603)
- Adds norm operator (similar to numpy.linalg.norm.html) (#579)
- Refactors the DJL Trackers to use builder patterns (#562)
- Adds the NDArray stopGradient and scaleGradient functions (#548)
- Model Serving now supports scaling up and down (#510)
Documentation and examples
- Introduces DJL 101 Video Series on DJL Youtube Channel
- Adds the documentation for Applications (#673)
- Adds an introduction for Engines (#660)
- Adds documents for DJL community and forums (#646)
- Adds documents on community leaders (#572)
- Adds more purpose to the block tutorial and miscellaneous docs (#607)
- Adds a DJL Paddle OCR Example (#568)
- Adds a TensorFlow amazon review Jupyter notebook example
Breaking change
- Renames DJL-Easy to DJL-Zero (#519)
- Makes RNN operators generic across engines (#554)
- Renames CheckpointsTrainingListener to SaveModelTrainingListener (#573)
- Makes Initialization optional in training (#533)
- Makes
SoftmaxCrossEntropyLoss's
fromLogit
flag mean inputs are un-normalized (#639) - Refactors the Vocabulary builder API
- Refactors the SymbolBlock with AbstractSymbolBlock (#491)
Bug Fixes
- Fixes the benchmark rss value #656
- Fixes the recurrent block memory leak and the output shape calculation (#556)
- Fixes the NDArray slice size (#550)
- Fixes #493: verify-java plugin charset bug (#496)
- Fixes #484: support arbitrary URL scheme for repository
- Fixes AbstractBlock inputNames and the inputShapes mismatch bug
Known issues
- The training tests fail on GPU and Windows CPU if 3 engines(MXNet, PyTorch, TensorFlow) are loaded and run together
Contributors
This release is thanks to the following contributors:
- Akshay Rajvanshi(@aksrajvanshi )
- Anthony Feenster(@anfee1)
- Christoph Henkelmann(@chenkelmann)
- Frank Liu(@frankfliu)
- G Goswami(@goswamig)
- Jake Lee(@stu1130)
- James Zow(@Jzow)
- Lai Wei(@roywei)
- Marcos(@markbookk)
- Qing Lan(@lanking520)
- Tibor Mezei(@zemei)
- Zach Kimberg(@zachgk)
- Erik Bamberg(@ebamberg)
- Keerthan Vasist(@keerthanvasist)
- mpskowron(@mpskowron)