Changelog History
-
v0.8.0
September 22, 2020 -
v0.7.0 Changes
September 04, 2020π DJL 0.7.0 brings SetencePiece for tokenization, GravalVM support for PyTorch engine, a new set of Nerual Network operators, BOM module, Reinforcement Learning interface and experimental DJL Serving module.
Key Features
- Now you can leverage powerful SentencePiece to do text processing including tokenization, de-tokenization, encoding and decoding. You can find more details on extension/sentencepiece.
- β¬οΈ Engine upgrade:
- MXNet engine: 1.7.0-backport
- PyTorch engine: 1.6.0
- TensorFlow: 2.3.0
- 0οΈβ£ MXNet multi-gpu training now is boosted by MXNet KVStore by default, which saves lots of overhead by GPU memory copy.
- π GraalVM are fully supported on both of regular execution and native image for PyTorch engine. You can find more details on GraalVM example.
β Add a new set of Neural Network operators that offers capability of full controlling over parameters for CV domain, which is similar to PyTorch nn.functional module. You can find the operator method in its Block class.
Conv2d.conv2d(NDArray input, NDArray weight, NDArray bias, Shape stride, Shape padding, Shape dilation, int groups);
π¦ Bill of Materials (BOM) is introduced to manage the version of dependencies for you. In DJL, the engine you are using usually is tied to a specific version of native package. By easily adding BOM dependencies like this, you wonβt worry about version anymore.
<dependency> <groupId>ai.djl</groupId> <artifactId>bom</artifactId> <version>0.7.0</version> <type>pom</type> <scope>import</scope> </dependency>
implementation platform("ai.djl:bom:0.7.0")
π JDK 14 now get supported
π New Reinforcement Learning interface including RIAgent, RlEnv, etc, you can see a comprehensive TicTacToe example.
π Support DJL Serving module. With only a single command, now you can enjoy deploying your model without bothering writing the server code or config like server proxy.
cd serving && ./gradlew run --args="-m https://djl-ai.s3.amazonaws.com/resources/test-models/mlp.tar.gz"
π Documentation and examples
- We wrote the D2L book from chapter 1 to chapter 7 with DJL. You can learn basic deep learning concept and classic CV model architecture with DJL. Repo
- π We launched a new doc website that hosts abundant documents and tutorials for quick search and copy-paste.
- New Online Sentiment Analysis with Apache Flink.
- New CTR prediction using Apache Beam and Deep Java Library(DJL).
- π New DJL logging configuration document which includes how to enable slf4j, switch to other logging libraries and adjust log level to debug the DJL.
- π New Dependency Management document that lists DJL internal and external dependencies along with their versions.
- π New CV Utilities document as a tutorial for Image API.
- π New Cache Management document is updated with more detail on different categories.dependency management.
- β‘οΈ Update Model Loading document to describe loading model from various sources like s3, hdfs.
β¨ Enhancement
- β Add archive file support to SimpleRepository
- π ImageFolder supports nested folder
- β Add singleton method for LambdaBlock to avoid redundant function reference
- β Add Constant Initializer
- β Add RMSProp, Adagrad, Adadelta Optimizer for MXNet engine
- β Add new tabular dataset: Airfoil Dataset
- β Add new basic dataset: CookingExchange, BananaDetection
- β Add new NumPy like operators: full, sign
- π Make prepare() method in Dataset optional
- β Add new Image augmentation APIs where you can add to Pipeline to enrich your image dataset
- β Add new handy fromNDArray to Image API for converting NDArray to Image object quickly
- β Add interpolation option for Image Resize operator
- π Support archive file for s3 repository
- Import new SSD model from TensorFlow Hub into DJL model zoo
- Import new Sentiment Analysis model from HuggingFace into DJL model zoo
π₯ Breaking changes
- β¬οΈ Drop CUDA 9.2 support for all the platforms including linux, windows
- β The arguments of several blocks are changed to align with the signature of other widely used Deep Learning frameworks, please refer to our Java doc site
- FastText is no longer a full Engine, it becomes a part of NLP utilities in favor of
FastTextWorkEmbedding
- π Move the WarmUp out from existing Tracking and introduce new
WarmUpTracker
- 0οΈβ£
MxPredictor
now doesnβt copy parameters by default, please make sure to useNaiveEngine
when you run inference in multi-threading environment
π Bug Fixes
- π Fixing Validation Epoch Result bug
- π Fix multiple process downloading the same model bug
- π Fix potential concurrent write bug while downloading metadata.json
- π Fix URI parsing error on Windows
- π Fix multi-gpu training crash when the number of the batch size is smaller than number of devices
- π Fix not setting number of inter-op threads for PyTorch engine
-
v0.6.0 Changes
June 25, 2020π 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
- β Added Sentiment Analysis training example
- β‘οΈ Updates the DJL webpage with new demos
π₯ 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
- π Stable Android inference support for PyTorch models
-
v0.5.0 Changes
May 12, 2020π 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
- Check out new models in Basic Model Zoo, MXNet Model Zoo, PyTorch Model Zoo, TensorFlow Model Zoo
π Documentation and examples
- β Checkout our new java doc site with version support
- π New tutorials and examples
- π New demos in our djl-demo repository
- β Checkout our latest blog posts:
π₯ Breaking changes
- π We moved our repository module under api module. There will be no 0.5.0 version for
ai.djl.repository
, useai.djl.api
instead. - β Please refer to DJL Java Doc for some minor API changes.
Know issues:
- Issue when using multiple Engines at the same time: #57
- Issue using DJL with Quarkus: #67
- We saw random crash on mac for transfer Learning on CIFAR-10 Dataset example on Jupyter Notebook. Command line all works.
- π TensorFlow engine support with TensorFlow 2.1.0
-
v0.4.1 Changes
April 06, 2020π 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 callinggetFeature()
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.
- Cached MXNet features. This will avoid
-
v0.4.0 Changes
March 30, 2020π 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.
- Training improvement
-
v0.3.0 Changes
February 24, 2020π 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
- 0οΈβ£ 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.
- π Use the new
-
v0.2.1 Changes
December 18, 2019π 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.
-
v0.2.0 Changes
November 29, 2019π This is the v0.2.0 release for DJL
Key Features- Deep learning engine agnostic High-level API for Training and Prediction.
- Dataset API, to create objects based out of different dataset formats, that work with training batchifier.
- MXNet-Model-Zoo with pre-trained models for Image Classification, Object Detection, Segmentation and more. π 4. Jupyter Notebooks and Examples to help get started with Training and predicting models with DJL
π Engines currently supported
Javadocs
The javadocs are available here
-
v0.1.0
November 01, 2019