The development of projects in areas like machine learning, deep learning and reinforcement learning is experiencing a lot of growth with more scalability and better research insights. The credit goes to the software development community along with tech companies as well, which makes it possible to reach out to more aspiring programmers and engineers, by open-sourcing most of their work.
We explore one such open-source DL and RL software library called TensorLayer, which is a part of Google’s popular machine learning and numerical computational framework TensorFlow. The idea behind the new library was to facilitate a modular approach to DL as well as RL to tackle complexity and iterative tasks when it comes to large neural networks and their interactions. It was first released in 2016 and gradually adopted changes along the way to become the most sought after libraries for DL.The entire code for TensorLayer is written in Python – the most preferred programming language for ML.
The core of the TensorLayer working follows a modular approach (as shown in the image). The key functions covered with regard to DL are, building neural networks, layer implementations, gathering & creating datasets and, finally structuring a training plan for proper working of the library in light of any failures while performing learning tasks. The highlighting feature of TensorLayer lies in the integrated development environment(IDE)-like approach where the host of operations such as neural networks, their states, data and other parameters are assorted into modules with an abstraction level. This allows other developers to customise with respect to the specific inter-connected areas such as front-end applications or back-end servers by providing an interactive modular interface.
In the words of the developers of TensorLayer, the modules are again classified on four aspects which are described below.
- a layer module that provides reference implementation of neuron layers which can be flexibly interconnected to architect neural networks.
- a model module that can help manage the intermediate states incurred throughout a model life-cycle.
- a dataset module that manages training data which can be used by both offline and online learning systems.
- a workflow module that supports asynchronous scheduling and failure recovery for concurrent training jobs.
TensorLayer relies on TensorFlow’s computational engine for training and uses MongoDB as the storage backend. MongoDB is chosen because of its advantage over other storage tools which use SQL methods such as simpler interface and better flexible features.
One critical factor that needs much attention is performance. When compared with TensorFlow, TensorLayer closely fares the same when classic ML models of neural networks are performed. Although this might look like a setback, it will allow the layer module in TensorLayer to cater customised models. On the other hand, while handling datasets it uses indexing concepts for quicker row selection in datasets. Also, the cache is stored locally to handle workloads with larger data split into smaller bits for optimal performance. In addition, this also helps the workflow module to implement DL models using ‘asynchronous training.
Application of TensorLayer in Machine Learning areas
TensorLayer users have found ways to explore various machine learning areas which have seen greater impact when it comes to efficiency. Here are a few specific sub-machine learning areas.
- Multi-layer Perceptron
- Computer Vision
- Natural Language Processing
- Adversarial Learning
- Reinforcement Learning
- Distributed Learning
- Other areas such as application programming interfaces(APIs) such as TensorFlask
In the paper published by the team who developed TensorLayer, the applications concentrate on adversarial learning such as Deep Convolutional Generative Adversarial Network (DCGAN) and Super-Resolution Generative Adversarial Network (SRGAN), which are gaining popularity in multimedia deep learning. In addition, TensorLayer’s application is also extended to address domain-specific problems by hyperparameter optimisation and cross-validation, in areas such as medical signal processing which require frequent maintenance and development in the ML models.
Where to get TensorLayer?
The latest version of TensorLayer package requires TensorFlow to be installed on the computer prior to implementation. It is also suggested to download and install Python3 to incorporate any new advancements in Python language. The detailed instructions for installation can be found here. TensorLayer is available on Windows, MacOS and Linux platforms. It is an open-source library.
Since its inception, TensorLayer has found recognition in the DL space as well as developed significantly in parallel with TensorFlow. There are similar libraries from the framework such as Keras and TFLearn which cater to ML, but where TensorLayer stands apart is its functionality and flexibility, without taking a hit on computing performance. However, in the end, it is up to the developers or users, to work with the library and make the best out of it.