Today, neural networks based on the deep learning paradigm have become one of the most actively researched branch of machine learning. Deep neural networks can process large amounts of data efficiently and build a model based on the information. Due to the increase in the processing power of computers (especially graphics accelerators), we are able to teach more and more complex models in limited time frames. Deep neural networks are able to achieve and even outperform human precision in labeling, classification and regression tasks under certain circumstances.
Nowadays, smartphones are part of our lives, we use them to communicate, to play games, to get around and we always look forward to new features. The advancements in technology enables these gadgets to replace PCs and Laptops in everyday tasks. There are multiple Android applications in which neural networks are already applied. These kinds of applications usually require Internet access because the neural networks are implemented on the server side in most cases.
In my thesis I discover how deep neural networks can be run on smartphone and how much power it needs. First, I review research papers related to this field. Then I created a system design, that explains the steps one has to make to be able to create a neural network and then run it on an Android based smartphone. I developed an application (DeepNN) that runs a deep neural network model, that was trained on the MINST image database. I compared DeepNN with an application (TensorFlow Camera Demo) that was built by the TensorFlow team. I modified the TensorFlow Camera Demo so it can be compiled and run from Android Studio. I created a background service that can monitor the system resources that is needed to run the neural network models. The resource requirements of small models (with just a few layers) were acceptable, on the other hand larger models (with many layers) increased the temperature of the CPU above 65 °C, which is unacceptable regarding the user experience.