Writing Neural Network Code: Introduction to TensorFlowHands-On
CEC Archives | CEC Semester Seventeen 2020 | Writing Neural Network Code: Introduction to TensorFlowHands-On
To best understand how Artificial Neural networks (ANN) are used in artificial intelligence (AI)in this leadoff class we will look at the ways that ANNs have been used in theoretical as well as applied applications. The class will start from the first hardcoded neurons through some of the programming breakthroughs that eventually allowed the practical application of ANNs in real-world applications.
Many common programming languages have been used over the years to program neurons and complete ANNsfrom Lisp to Python to C++. Other specialized languages have been used including TorchKerasand of course TensorFlow. Building on our first classwe will look at the various programming techniques that have been used to definetraintestand deploy ANN-based applications.
TensorFlow and its derivatives such as TensorFlow Lite have become one of the prevalent programming environments for developing ANNs. We will look at the development environment for TensorFlow including the use of Jupyter notebooks on Google Colab - no local development system needed! We will build and examine the basic Hello World of TensorFlow as well as look at some of the other common learning tools to acquaint ourselves with the tool and development environments.
Now that we have acquainted ourselves with TensorFlow and the development environmentin this penultimate class we will look at how we can take the ANN definitions we worked with early in the week and program them into our own networks.
For our last classwe will look at how we can use data science to gather our models for training and testing then use those data sets to carry out those tasks. We will cover some of the principles of how to divide our data sets between the training and testing tasks as well as ways of using the training results to tweak our network design. We will end our class by looking at some of the chip-specific implementations of TensorFlow to build ANNs for our desired target processors.

Charles J. Lord, PE is an embedded systems consultant and trainer with over 40 years' experience in system design and development in medical, military, and industrial applications. For the last twelve years, he has specialized in the integration of communication protocols into clients' products, including USB, Ethernet, and low-power wireless including ZigBee, 6LoWPAN, LoRa, and Thread. He has taught classes in these protocols for Freescale, Renesas, various universities and conferences including ESC and Arm TechCon. He has been a design partner with Freescale/NXP, Microchip, and Renesas. He also teaches webinars for various clients on IoT and embedded systems topics. He earned his BS in electrical engineering from N.C. State University in Raleigh, N.C. and provides training and consulting services through his company, Blue Ridge Advanced Design, in Asheville, N.C. He is a licensed professional engineer in NC and a senior member of the IEEE. In his volunteer work at the IEEE, he has served at many levels from local to regional to board committees. He is currently the chair of the IEEE Western NC Section, NC Council and was general chair of IEEE SoutheastCon 1995 and 2017