Skip to content

Releases: deepjavalibrary/djl

DJL v0.12.0 release

09 Jul 17:58
Compare
Choose a tag to compare

DJL v0.12.0 added GPU support to PaddlePaddle and ONNXRuntime, and introduces several new features:

Key Features

  • Updates PaddlePaddle engine with GPU support.
  • Updates ONNXRuntime engine with GPU support.
  • Upgrades ONNXRuntime engine to 1.8.0.
  • Upgrades XGBoost engine to 1.4.1.
  • Introduces AWS Inferentia support, see our example for detail.
  • Adds FLOAT16 datatype support in NDArray.
  • Support UTF16 surrogate characters in NLP tokenization.
  • Makes benchmark as a standalone tool.
  • Releases djl-serving docker image to docker hub.

Enhancement

  • DJL Benchmark now can benchmark any datatype as input.
  • Makes Grayscale image processing match openCV’s behavior (#965)
  • Improves PyTorch engine to load extra shared library for custom operators (#983)
  • Improves djl-serving REST API to support load model on specified engine (#977)
  • Improves djl-serving to support load multiple version of a model on the same endpoint (#1052)
  • Improves djl-serving to support auto-scale workers based on traffic (#986)
  • Implements several operators:
    • Adds the truncated normal operator (#1005)
    • Adds the one hot operator for PyTorch (#1014)
    • Adds the LayerNorm operator in PyTorch (#1069)
  • Introduces several API improvements
    • Improves Criteria.loadModel() API (#1018)
    • Refactors ModleLoader and TranslatorFactory (#712)
    • Improves BlockFactory API (#1045)
    • Makes SpProcessor public API (#1060)

Documentation and examples

Breaking change

  • Direct access ModelZoo ModelLoader is no longer supported, use Criteria API instead.
  • Deprecates ModelZoo.loadModel() API in favor of using Criteria.loadModel().

Bug Fixes

  • Fixes missing softmax in action_recognition model zoo model (#969)
  • Fixes saveModel NPE bug (#989)
  • Fixes NPE bug in block.toString() function (#1076)
  • Adds back String tensor support to TensorFlow engine (lost in 0.11.0 during refactor) (#1040)
  • Sets ai.djl.pytorch.num_interop_threads default value for djl-serving (#1059)

Known issues

Contributors

This release is thanks to the following contributors:

DJL v0.11.0 release note

04 May 02:32
Compare
Choose a tag to compare

DJL v0.11.0 brings the new engines XGBoost 1.3.1, updates PyTorch to 1.8.1, TensorFlow to 2.4.1, Apache MXNet 1.8.0, PaddlePaddle to 2.0.2 and introduces several new features:

Key Features

  • Supports XGBoost 1.3.1 engine inference: now you can run prediction using models trained in XGBoost.
  • Upgrades PyTorch to 1.8.1 with CUDA 11.1 support.
  • Upgrades TensorFlow to 2.4.1 with CUDA 11.0 support.
  • Upgrades Apache MXNet to 1.8.0 with CUDA 11.0 support.
  • Upgrades PaddlePaddle to 2.0.2.
  • Upgrades SentencePiece to 0.1.95.
  • Introduces the djl-serving brew package: now you can install djl-serving with brew install djl-serving.
  • Introduces the djl-serving plugins.
  • Introduces Amazon Elastic Inference support.

Enhancement

  • Improves TensorFlow performance by reducing GC and fixed memory leaking issue (#892)
  • djl-serving now can run all the engines out-of-box (#886)
  • Improves DJL training by using multi-threading on each GPU (#743)
  • Implements several operators:
    • Adds boolean set method to NDArray (#784)
    • Adds batch dot product operator (#849)
    • Adds norm operator to PyTorch (#692)
    • Adds one hot operator (#684)
    • Adds weight decay to Loss (#788)
  • Adds setGraphExecutorOptimize option for PyTorch engine. (#904)
  • Introduces String tensor support for ONNXRuntime (#724)
  • Introduces several API improvements
    • Creates ObjectDetectionDataset (#683)
    • Improves Block usability (#712)
    • Adds BlockFactory feature in model loading (#805)
    • Allows PyTorch stream model loading (#729)
    • Adds NDList decode from InputStream (#734)
    • Adds SymbolBlock Serialization (#687)
  • Introduces model searching feature in djl central (#799)

Documentation and examples

Breaking change

  • Renames CheckpointsTrainingListener to SaveModelTrainingListener (#686)
  • Removes erroneous random forest application (#726)
  • Deletes DataManager class (#691)
  • Classes under ai.djl.basicdataset packages has been moved into each sub-packages.

Bug Fixes

  • Fixes BufferOverflowException when handling handling subimage (#866)
  • Fixes ONNXRuntime 2nd engine dependency from IrisTranslator (#853)
  • Fixes sequenceMask error when n dimension is 2 (#828)
  • Fixes TCP port range buf in djl-serving (#773)
  • Fixes one array case for concat operator (#739)
  • Fixes non-zero operator for PyTorch (#704)

Known issues

Contributors

This release is thanks to the following contributors:

DJL v0.10.0 Release

24 Feb 20:10
Compare
Choose a tag to compare

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:

DJL v0.8.0 release note

23 Sep 21:20
Compare
Choose a tag to compare

DJL 0.8.0 is a release closely following 0.7.0 to fix a few key bugs along with some new features.

Key Features

  • Search model zoo with criteria
  • Standard BERT transformer and WordpieceTokenizer for more BERT tasks
  • Simplify MRL and Remove Anchor
  • Simplify and Standardize CV Model
  • Improve Model describe input and output
  • String NDArray support (only for TensorFlow Engine)
  • Add erfinv operator support
  • MXNet 1.6.0 backward compatibility, now you can switch MXNet versions (1.6 and 1.7) using DJL 0.8.0
  • Combined pytorch-engine-precxx-11 and pytorch-engine package
  • Upgrade onnx runtime from 1.3.1 to 1.4.0

Documentation and examples

  • Object Detection with TensorFlow saved model example
  • Text Classification with TensorFlow BERT model example
  • Added more documentation on TensorFlow engine.

Bug Fixes

  • Fixed MXNet multithreading bug and updated multi-threading documentation
  • Fixed TensorFlow 2.3 native binaries for Windows platform

Known issues

  • You need to add your own Translator when loading image classification models(ResNet, MobileNet) from TensorFlow model Zoo, refer to the example here.

Contributors

Thank you to the following community members for contributing to this release:

Dennis Kieselhorst, Frank Liu, Jake Cheng-Che Lee, Lai Wei, Qing Lan, Zach Kimberg, uniquetrij

DJL v0.6.0 release notes

25 Jun 03:04
Compare
Choose a tag to compare

DJL 0.6.0 brings stable Android support, ONNX Runtime experimental inference support, experimental training support for PyTorch.

Key Features

  • Stable Android inference support for PyTorch models
    • Provide abstraction for Image processing using ImageFactory
  • Experimental support for inference on ONNX models
  • Initial experimental training and imperative inference support for PyTorch engine
  • Experimental support for using multi-engine
  • Improved usage for NDIndex - support for ellipsis notation, arguments
  • Improvements to AbstractBlock to simplify custom block creation
  • Added new datasets

Documentation and examples

Breaking changes

  • ModelZoo Configuration changes
  • ImageFactory changes
  • Please refer to javadocs for minor API changes

Known issues

  • Issue with training with MXNet in multi-gpu instances

Contributors

Thank you to the following community members for contributing to this release:

Christoph Henkelmann, Frank Liu, Jake Lee, JonTanS, Keerthan Vasist, Lai Wei, Qing, Qing Lan, Victor Zhu, Zach Kimberg, ai4java, aksrajvanshi

DJL v0.5.0 release notes

12 May 20:49
Compare
Choose a tag to compare

DJL 0.5.0 release brings TensorFlow engine inference, initial NLP support and experimental Android inference with PyTorch engine.

Key Features

  • TensorFlow engine support with TensorFlow 2.1.0
    • Support NDArray operations, TensorFlow model zoo, multi-threaded inference
  • PyTorch engine improvement with PyTorch 1.5.0
  • Experimental Android Support with PyTorch engine
  • MXNet engine improvement with MXNet 1.7.0
  • Initial NLP support with MXNet engine
    • Training LSTM models
    • Support various text/word embedding, Seq2Seq use cases
    • Added NLP datasets
  • New AWS-AI toolkit to integrate with AWS technologies
    • Load model from s3 buckets directly
  • Improved model-zoo with more models

Documentation and examples

Breaking changes

  • We moved our repository module under api module. There will be no 0.5.0 version for ai.djl.repository, use ai.djl.api instead.
  • Please refer to DJL Java Doc for some minor API changes.

Know issues:

DJL v0.4.1 release notes

06 Apr 21:38
Compare
Choose a tag to compare

DJL 0.4.1 release includes an important performance Improvement on MXNet engine:

Performance Improvement:

  • Cached MXNet features. This will avoid MxNDManager.newSubManager() to repeatedly calling getFeature() which will make JNA calls to native code.

Known Issues:

Same as v0.4.0 release:

  • PyTorch engine doesn't fully support multithreaded inference. You may see random crashes. Single-threaded inference is not impacted. We expect to fix this issue in a future release.
  • We saw random crash on mac for “transfer Learning on CIFAR-10 Dataset” example on Jupyter Notebook. Command line all works.

DJL v0.4.0 release notes

30 Mar 18:05
Compare
Choose a tag to compare

DJL 0.4.0 brings PyTorch and TensorFlow 2.0 inference support. Now you can use these engines directly from DJL with minimum code changes.

Note: TensorFlow 2.0 currently is in PoC stage, users will have to build from source to use it. We expect TF Engine finish in the future releases.

Key Features

  • Training improvement
    • Add InputStreamTranslator
  • Model Zoo improvement
    • Add LocalZooProvider
    • Add ListModels API
  • PyTorch Engine support
    • Use the new ai.djl.pytorch:pytorch-native-auto dependency for automatic engine selection and a simpler build/installation process
    • 60+ methods supported
  • PyTorch ModelZoo support
    • Image Classification models: ResNet18 and ResNet50
    • Object Detection model: SSD_ResNet50
  • TensorFlow 2.0 Engine support
    • Support on Eager Execution for imperative mode
    • 30+ methods support
  • TensorFlow ModelZoo support
    • Image Classification models: ResNet50, MobileNetV2

Breaking Changes

There are a few changes in API and ModelZoo packages to adapt to multi-engine support. Please follow our latest examples to update your code base from 0.3.0 to 0.4.0.

Known Issues

  1. PyTorch engine doesn't fully support multithreaded inference. You may see random crashes. Single-threaded inference is not impacted. We expect to fix this issue in a future release.
  2. We saw random crash on mac for “transfer Learning on CIFAR-10 Dataset” example on Jupyter Notebook. Command line all works.

DJL v0.3.0 release notes

24 Feb 22:55
Compare
Choose a tag to compare

This is the v0.3.0 release of DJL

Key Features

  • Use the new ai.djl.mxnet:mxnet-native-auto dependency for automatic engine selection and a simpler build/installation process
  • New Jupyter Notebook based tutorial for DJL
  • New Engine Support for:
    • FastText Engine
    • Started implementation on a PyTorch Engine
  • Simplified training experience featuring:
    • TrainingListeners to easily provide full featured training
    • DefaultTrainingConfig now contains a default optimizer and initializer
    • Easier to transfer from examples to your own code
  • Specify the random seed for reproducible training
  • Run with multiple engines and specify the default using the "DJL_DEFAULT_ENGINE" environment variable or "ai.djl.default_engine" system property
  • Updated ModelZoo design to support unified loading with Criteria
  • Simple random Hyperparameter optimization

Breaking Changes

DJL is working to further improve the ease of use and correctness of our API. To that end, we have made a number of breaking changes for this release. Here are a few of the areas that had breaking changes:

  • Renamed TrainingMetrics to Evaluator
  • CompositeLoss replaced with AbstractCompositeLoss and SimpleCompositeLoss
  • Modified MLP class
  • Remove Matrix class
  • Updates to NDArray class

Known Issues

  1. RNN operators do not working with GPU on Windows.
  2. Only CUDA_ARCH 37, 70 are supported for Windows GPU machine.

DJL v0.2.1 release notes

18 Dec 23:02
Compare
Choose a tag to compare

This is the v0.2.1 release of DJL

Key Features

  1. Added support for Windows 10.
  2. CUDA 9.2 support for all supported Operating systems (Linux, Windows)

Known Issues

  1. RNN operators do not working with GPU on Windows.
  2. Only CUDA_ARCH 37, 70 are supported for Windows GPU machine.