Neural networks – an innovative project by Sii in Japan
Sii Poland completed an innovative project for a Japanese producers of microcontrollers and semiconductors operating in the automotive industry. Renesas Electronics Corporation is one of the biggest manufacturers of these products in the world and offers high-end SoC (system on chip) solutions, memory ICs, discrete devices etc.
The goal of the project with the participation of Sii Poland experts, was to create a first ever product that would allow users to visualize neural networks in a new way. Renesas Electronics Corporation already had a set of devices designed to translate neural networks into code that would be compiled and used in embedded solutions. It was impossible, however, to observe the neural network in a convenient way after learning, display and edit weights, so they could be overwritten for the purpose of re-learning or reducing code size. This was in fact one of the key objectives as it is very important to optimize memory usage in embedded devices.
Experts from the Sii Engineering Competency Center have created a Neural Network Visualizer. Thanks to this solution users can visualize the neural networks structure, display weights and modify as well as save new weights. The application allows to zero chosen weights, which results in reducing the size of the code obtained during the neural network translation process. It can also be used for the initialization of the network learning process with known weights.
The product was delivered as a standalone version and a plugin integrated with the development environment of e2 Studio. It can work with two network formats used by our customer: Caffe and Tensorflow.
A very important requirement was to prove that the product was built according to quality guidelines based on CMMI Level 3. This is why the project was carried out in accordance with a comprehensive, quality assurance process designed by Sii. Another equally important result of our work involved creating a detailed documentation during each phase of the development. – says Monika Jaworowska, Service Delivery Director in Sii.
The application and plugin were built in Java. All work related to neural networks included the use of Caffe and Tensorflow to perform network learning process, as well as of protocol buffer formats and other data storage devices. The Python programming language was used to modify neural networks. The code coverage was done by the Clover tool and unit testing was carried out using Junit. – says Przemyslaw Wielunski, Software Engineer at Sii.
The whole project was successfully developed as a part of the remote services offer of Sii’s Engineering Competency Center.