This book, written by experts in AI and machine learning, is unique. Unlike current books on this subject that either cover the theory and mathematical underpinnings of deep learning, or focus exclusively on programming-centric concepts, tools and languages, this book addresses and bridges both aspects. It seamlessly connects theoretical methods with pertinent technologies and toolsets in a manner that makes the material suitable for students, educators, and practitioners. Its proposition lies in its multifaceted treatment of the subject. It conveys complex Deep Learning concepts in simple terms, making the material understandable to a wide audience. In addition, it elucidates the intricate landscape of the different technologies and toolsets currently available, thereby offering readers the much needed clarity needed to make informed decisions for their respective applications and problem domains. By bridging theory and practice, this book empowers readers to not only grasp fundamental concepts but to also confidently navigate the practical applications of Deep Learning. Ultimately, this book will serve as a comprehensive guide for Deep Learning enthusiasts, practitioners, educators, and researchers alike. Its focus on holistic understanding and actionable insights makes it an invaluable "must read," and an essential resource for anyone interested in delving into the exciting realm of Deep Learning. Foreword 5 Preface 6 Acknowledgements 7 Purpose of This Book 8 Contents 10 About the Authors 15 Acronyms 19 1 Introduction 20 1.1 Artificial Intelligence (AI) 21 1.2 Machine Learning (ML) 23 1.3 AI vs. ML 24 1.4 Deep Learning (DL) 24 1.5 DL vs. ML 25 1.6 Deep Learning and Deep Programming 25 1.7 Deep Learning Networks 26 1.8 Deep Learning Network Deployment 28 2 Low-Code and Deep Learning Applications 30 2.1 Role of Tool Set in Applications 30 2.2 Schematic Representation of Deep Learning Architecture 32 2.3 Deep Learning Applications 33 2.3.1 Data Set 33 2.3.2 Model Design for Deep Learning Network 34 2.3.3 Train Model 34 2.3.4 Test Model 34 2.3.5 Save Model 35 2.3.6 Load Model 35 2.3.7 Deployment 35 2.4 Custom Framework: DLtrain for AI 35 2.5 Sample AI Application Deployment 37 2.5.1 Quick Look: IBM Watson 37 2.5.2 IBM Watson Service and Monitor Tomato Farm 37 2.5.3 Real-Time Audit of IP Networks 40 3 Introduction to Software Tool Set 41 3.1 Virtual Environment for Required Tool Set 41 3.2 TensorFlow: An AI Platform 43 3.2.1 Keras in TensorFlow 44 3.2.2 TensorFlow Image in Docker 44 3.3 JupyterLab 45 3.3.1 Jupyter Notebook 45 3.4 JupyterLab: Latex 45 3.5 Setting Up Edge AI Computer (Jetson Nano) 45 3.6 IBM Watson Machine Learning: Community Edition 46 3.7 Tool Set to Build DLtrain 47 3.7.1 Target Machine Is X86 with Ubuntu 47 3.7.2 Use Docker: Target Machine Is X86 with Ubuntu 48 3.7.3 Target Machine Is Power 9 with Ubuntu 48 3.7.4 Target Machine Is Jetson Nano with Ubuntu 49 3.7.5 Target Machine Is X86 Windows 10 49 3.8 Docker Image of DLtrain Application to Train CNN 49 3.9 Deploy DL Networks in Near Edge 50 3.9.1 Deploy DL Networks by Using TensorFlow RT 51 4 Hardware for DL Networks 52 4.1 Open Source for Edge Native Hardware 53 4.2 POWER9 with RTX 2070 GPU 54 4.2.1 OpenPOWER CPU with ASPEED VGA Controller 55 4.2.2 CUDA Installation and PCI Driver for RTX 2070 57 4.2.3 Build Application Using nvcc 57 4.2.4 Edge Native AI Hardware 61 4.2.5 On-Prem Requirement 62 4.2.6 DGX Station A100 for DL Networks 63 4.2.7 Deployment of AI in X86 Machine 64 4.2.8 Deployment of AI in Android Phone 65 4.2.9 Deployment of AI in Rich Edge 65 5 Data Set Design and Data Labeling 66 5.1 Insight 66 5.2 Description 66 5.3 Source of Data: Human and Machine 67 5.4 Data Set Creation and Statistical Methods 68 5.5 Statistical Methods 69 5.5.1 Bernoulli: Binary Classification of Data 69 5.5.2 Binomial: Binary Classification of Data 71 5.5.3 Poisson: Binary Classification of Data 72 5.6 Image Signal Processing 74 5.6.1 Image Data and Maxwell-Boltzmann Statistics 74 5.6.2 Working with Image Files 76 MNIST Data Set Handling 76 5.6.3 Pixel Normalization 77 5.6.4 Global Centering 77 5.6.5 Global Standardization 77 5.7 Data Set: Read and Store 77 5.7.1 Data Set with Label Data 77 5.7.2 Working with CSV Files 78 5.8 Audio Signal Processing 78 5.8.1 Speech Synthesis by Using Deep Learning Networks 78 5.9 Data Set by Using PCAP File and Stream to Tensor 79 6 Model of Deep Learning Networks 80 6.1 Insight 80 6.2 Data and Model 81 6.2.1 Sequence Prediction 81 6.2.2 Sequence Classification 81 6.2.3 Sequence Generation 82 6.2.4 Sequence to Sequence Prediction 82 6.3 Data and Probability Model 82 6.3.1 Measurement and Probability Distribution 82 6.4 Boltzmann Distribution 85 6.5 Multilayer Neural Network 91 6.6 Reduction of Boltzmann Machine to the Hopfield Model 91 6.7 Kolmogorov Complexity for a Given Data 92 6.8 Restricted Boltzmann Machine 93 6.9 Brooks–Iyengar Algorithm for Binary Classification 95 6.10 Pre-Trained Model 97 6.11 Compression of DL Networks 98 7 Training of Deep Learning Networks 99 7.1 DLtrain Is a No-Code Deep Learning Framework 99 7.2 DLtrain: Training of NN and CNN Models 103 7.2.1 Preprocessing Data Set 103 7.2.2 Design Deep Learning Network Model 104 7.2.3 Training Algorithm 104 7.2.4 Training Deep Learning Network Model 105 7.2.5 Save Deep Learning Network Model 105 7.3 DLtrain Tested in POWER9 with GPU 105 7.3.1 Build DLtrain for POWER9 Servers 106 7.3.2 DLtrain to Train CNN in POWER9 Servers 106 7.3.3 DLtrain for Inference in POWER9 Servers 107 7.4 Docker Image of DLtrain for X86 with Ubuntu 107 7.5 DLtrain: Train DL Models in Windows 10 108 7.6 DLtrain: Large Model Support 109 7.7 Train NN and CNN Models in TensorFlow 111 7.7.1 Setup Tool Chain for TensorFlow 111 7.7.2 MNIST Data Set to Train NN or CNN Model 111 7.7.3 Colab: Train NN and CNN Models 112 7.8 DLtrain for Jetson Nano Series SOM 112 7.8.1 Build DLtrain for Jetson Nano Series SOM 112 7.8.2 DLtrain to Train CNN in Jetson Nano Series SOM 113 7.8.3 DLtrain for Inference in Jetson Nano Series SOM 113 8 Deployment of Deep Learning Networks 114 8.1 Insight 114 8.2 Description 115 8.3 Silicon Vendors in IoT Edge Segment 121 8.4 Deploying DL Networks in Kanshi 124 8.4.1 Event Data Collection 125 8.4.2 Flow Data Collection 125 8.4.3 Vulnerability Assessment 127 8.4.4 IP Stream Analysis 129 8.5 Deploying DL in Android Phone 131 8.5.1 Installing Android Studio 132 8.5.2 Build Inference Engine 133 8.5.3 Send CNN or NN Model to Phone 133 8.5.4 Using the J7 Application in Android Phone 135 8.5.5 Mini Project 1: Inference Using GPU 135 8.5.6 Mini Project 2: On Sharing Trained CNN 136 8.5.7 Mini Project 3: Pull Trained CNN from Host 137 8.5.8 IBM Watson Visual Recognition Service 139 8.5.9 Build a Custom Model to Test Tomato Quality 143 8.5.10 Deploying DL in FPGA (Ultra96-V2) 144 8.5.11 Port FP32 Inference Code to INT32 148 9 Tutorial: Deploying Deep Learning Networks 150 9.1 Prerequisites 151 9.2 Deploying Deep Learning Networks 152 9.2.1 Deploying Deep Learning Networks in Cloud and Edge 152 9.2.2 Deploying Deep Learning Networks in Edge Native 152 9.2.3 Deploying Deep Learning in Cloud Native 153 9.3 Deep Learning Networks, Digital Twin, Edge 153 9.3.1 CNN Model 153 9.3.2 Digital Twin 154 9.4 Data Set Used in Training Deep Learning Networks 154 9.4.1 Data-Set Storage in a Local Machine 154 9.4.2 Adding Custom Image Data Along with an MNIST Data Set 154 9.5 Training the Deep Learning Networks Model by Using a CPU and a GPU 155 9.5.1 Training Deep Learning Networks in Colab 155 9.5.2 Training in Ubuntu 18.04 86 CPU 155 9.5.3 Training in Power 9 CPU + RTX 2070 GPU 155 9.5.4 Training Deep Learning Networks in a Jetson Nano GPU 156 9.5.5 Watson VR Service: Deprecated 156 9.6 Saving Deep Learning Networks 156 9.7 Loading Deep Learning Networks 156 9.8 Deploying Deep Learning Networks in an IoT Device 156 9.9 Inference as a Microservice 157 9.9.1 Microservice Using the Flask Micro Framework 157 9.9.2 JavaScript to Run TensorFlow Models in a Browser 157 9.9.3 Docker Image for a TensorFlow Serving Model 157 Glossary 2 Glossary 158 A Training Restricted Boltzmann Machine 159 A.1 Gradient Descent Is Used to Minimize Cost Function 159 Cost Function 159 Neural Network 159 The Derivative 160 A.2 Score and Loss Functions 162 A.3 Data Flow in Computation of W 162 A.4 Use of GPU to Compute W 162 References 166 Index 171 This textbook presents multiple facets of design, development and deployment of deep learning networks for both students and industry practitioners. It introduces a deep learning tool set with deep learning concepts interwoven to enhance understanding. It also presents the design and technical aspects of programming along with a practical way to understand the relationships between programming and technology for a variety of applications. It offers a tutorial for the reader to learn wide-ranging conceptual modeling and programming tools that animate deep learning applications. The book is especially directed to students taking senior level undergraduate courses and to industry practitioners interested in learning about and applying deep learning methods to practical real-world problems.