# 0.3.0 (2021-28-09) ONNX for inference and transfer learning and ONNX Model Hub
Features:
- Implemented the copying for the Functional and Sequential models
- Implemented the copying for the TensorFlow-based Inference Model
- Implemented the experimental ONNX integration:
- added new 'onnx' module
- added the ONNXModel implementing the common InferenceModel interface
- ONNX model could be used as a preprocessing stage for the TensorFlow model
- prepared ONNX model without top layers could be fine-tuned via training of top layers implemented with TensorFlow-based layers
- Added SSD and YOLOv4 object detection models to the Model Hub
- Added Fan2D106 face alignment model to the Model Hub
- Added SSDObjectDetectionModel with the easy API for object detection, including pre- and post-processing
- Added a few models in ONNX format to the Model Hub
- ResNet18
- ResNet34
- ResNet50
- ResNet101
- ResNet152
- ResNet18V2
- ResNet34V2
- ResNet50V2
- ResNet101V2
- ResNet152V2
- EfficientNetV4
- Added new TensorFlow-based models to the Model Zoo (or Model Hub):
- NasNetMobile
- NasNetLarge
- DenseNet121
- DenseNet169
- DenseNet201
- Xception
- Added ResNet18 and ResNet34 TensorFlow-based models to ModelZoo
- Added L1 and L2 regularization to the layers
- Added Identity initializer
- Added Orthogonal initializer
- Added Softmax activation layer
- Added LeakyReLU activation layer
- Added PReLU activation layer
- Added ELU activation layer
- Added ThresholdedReLU activation layer
- Added Conv1D layer
- Added MaxPooling1D layer
- Added AveragePooling1D layer
- Added GlobalMaxPooling1D layer
- Added GlobalAveragePooling1D layer
- Added Conv3D layer
- Added MaxPooling3D layer
- Added AveragePooling3D layer
- Added GlobalAveragePooling3D layer
- Added GlobalMaxPool2D layer
- Added GlobalMaxPool3D layer
- Added Cropping1D and Cropping3D layers
- Added Permute layer
- Added RepeatVector layer
- Added UpSampling1D, UpSampling2D and UpSampling3D layers
- Added Gelu activation function
- Added HardShrink activation function
- Added LiSHT activation function
- Added Mish activation function
- Added Snake activation function
- Added Tanh shrink activation function
- Added TimeStopping callback
Bugs:
- Added missed loaders for the ReLU and ELU activation layers
- Add model export for a few layers (Concatenate, DepthwiseConv2D, SeparableConv2D) missed in ModelSaver.kt
- Fixed the use-case when ModelSaver fails on saving Input with 2d and 3d tensors
- Fixed a StackOverflowError in objectDetectionSSD.kt example
- Fixed a problem with the confusing logs during weights loading from .h5 file
- Fixed the Windows separator usage instead of File.separator in the Save and Load preprocessors
- Fixed the incorrect temporary folder for the cat-vs-dogs dataset
- Fixed the problem when ImageConverter and Loading do not close open streams
- Fixed the Image Preprocessing DSL issues
- Reduced time complexity of FloatArray::argmax to linear
API breaking changes:
- Renamed ModelZoo to the ModelHub
- Changed the ImagePreprocessing DSL: loading and saving are moved to the separate level of DSL
- Changed the TrainableModel::summary API to return ModelSummary
Infrastructure:
- Loaded the weights and JSON configurations of the newly added ModelHub models to S3 storage
- Moved ImageDSL and Dataset API to the separate 'dataset' module
- Added a new 'visualization' module with the basic support for painting on Swing and in Jupyter Notebook with lets-plot
- Transformed the project from the single-module project to the multi-module project
Docs:
- Created website with API Documentation from KDoc via Dokka
- Added support for the multiple version API Documentation from KDoc via Dokka
- Updated all existing tutorials
- Updated the Readme.md
- Updated the existing KDocs
- Added a new tutorial about ONNX models usage
- Added a new tutorial about Transfer Learning with ONNX ResNet no-top model and TensorFlow
Examples:
- Added an example of SSDObjectDetectionModel usage and visualization of the detected objects on the Swing panel
- Added an example of Fan2D106 (face alignment) model and landmarks visualization on the Swing panel
- Added an example where the prepared ONNX model without top layers is fine-tuned via training of top layers implemented with TensorFlow-based layers
- Added a lot of examples for the newly added to the ModelHub models (ONNX-based and TensorFlow-based)
- Added an example with the model SoundNet trained on Free Spoken Digits Dataset to classify the audio
- Updated 'visualization' examples with the new Batik and lets-plot support
Tests:
- Added tests for ModelLoading
- Added tests for InputLayer
- Added tests for all newly added layers
Thanks to our contributors:
- Alexey Zinoviev (@zaleslaw)
- Julia Beliaeva (@juliabeliaeva)
- Masoud Kazemi (@mkaze)
- Ansh Tyagi (@therealansh)
- Maciej Procyk (@avan1235)
- Veniamin Viflyantsev (@knok16)
- Stan van der Bend (@dosier)
- Axel Pahl (@apahl)
- @cagriyildirimR
- @d-lowl
- Hauke Brammer (@hbrammer)
- Xa9aX ツ (@digantamisra98)
- Sergey Kokorin (@kokorins)
- Femi Alaka (@femialaka)