Microsoft to Open ONNX Runtime Source Code

It's a high-performance engine for machine learning models in the ONNX (Open Neural Network Exchange) format
07 December 2018   798

Microsoft announced the deployment of ONNX Runtime source code on GitHub. The project is a high-performance engine for machine learning models in the ONNX (Open Neural Network Exchange) format, ensuring compatibility of ML models with free AI frameworks (TensorFlow, Cognitive Toolkit, Caffe2, MXNet). Therefore, ONNX Runtime is used to optimize computations in models of deep learning of neural networks.

With the translation of the project into open source, the company hopes to attract more people to the development of machine learning. Moreover, Microsoft promised to respond quickly to commits.

To use ONNX Runtime, it is necessary to determine the ONNX model and select a tool for it. Their list and instructions are available on the GitHub page. Microsoft offers several options for those who do not know where to start:

  • Download ready-made ResNet or TinyYOLO models from ONNX Model Zoo;
  • Create your own computer vision models using Azure Custom Vision Service
  • convert models created in TensorFlow, Keras, Scikit-Learn or CoreML using ONNXMLTools and TF2ONNX;
  • train new models using Azure machine learning and save the result in ONNX format.

According to Microsoft spokesman Eric Boyd, the Bing Search, Bing Ads and Office services teams were able to achieve twice the performance of ML models using ONNX Runtime compared to standard solutions. Therefore, it is important to support the project by both users and large companies. As for the latter, while they embody the following projects:

  • Microsoft and Intel are implementing the nGraph compiler;
  • NVIDIA is working on TensorRT integration;
  • Qualcomm is looking forward to developing the Snapdragon mobile platform.

In early December 2017, ONNX was transferred from the stage of early access to a project corresponding to the conditions of industrial operation. Companies urged the community to join the project and help create a unified platform for engaging with in-depth training tools.

Nvidia to Open SPADE Source Code

SPADE machine learning system creates realistic landscapes based on rough human sketches
15 April 2019   676

NVIDIA has released the source code for the SPADE machine learning system (GauGAN), which allows for the synthesis of realistic landscapes based on rough sketches, as well as training models associated with the project. The system was demonstrated in March at the GTC 2019 conference, but the code was published only yesterday. The developments are open under the non-free license CC BY-NC-SA 4.0 (Creative Commons Attribution-NonCommercial-ShareAlike 4.0), allowing use only for non-commercial purposes. The code is written in Python using the PyTorch framework.

Sketches are drawn up in the form of a segmented map that determines the placement of exemplary objects on the scene. The nature of the generated objects is set using color labels. For example, a blue fill turns into sky, blue into water, dark green into trees, light green into grass, light brown into stones, dark brown into mountains, gray into snow, a brown line into a road, and a blue line into the river. Additionally, based on the choice of reference images, the overall style of the composition and the time of day are determined. The proposed tool for creating virtual worlds can be useful to a wide range of specialists, from architects and urban planners to game developers and landscape designers.

Objects are synthesized by a generative-adversarial neural network (GAN), which, based on a schematic segmented map, creates realistic images by borrowing parts from a model previously trained on several million photographs. In contrast to the previously developed systems of image synthesis, the proposed method is based on the use of adaptive spatial transformation followed by transformation based on machine learning. Processing a segmented map instead of semantic markup allows you to achieve an exact match of the result and control the style.

To achieve realism, two competing neural networks are used: the generator and the discriminator (Discriminator). The generator generates images based on mixing elements of real photos, and the discriminator identifies possible deviations from real images. As a result, a feedback is formed, on the basis of which the generator begins to assemble more and more qualitative samples, until the discriminator ceases to distinguish them from the real ones.