Skip to content
CEC Semester Seventeen 2020

Writing Neural Network Code: Introduction to TensorFlowHands-On

Charles J. Lord -
May 11,
2020
A Brief History of Artificial Neural Networks

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.

Course Resources
Special Educational Materials
Getting Started with NVIDIA Jetson Nano Part 2: Image Classification - Maker.io Tutorial Digi-Key Electronics - Video
Itsy Bitsy M0 Express - ATSAMD21 Cortex M0 Reference DesignsIntro to TensorFlow Lite Part 3: Speech Recognition on Raspberry Pi Digi-Key Electronics - Video
Adafuit Itsy Bitsy VideoDownload Archive: MP4
May 12,
2020
Neural Network Simulation and Programming

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.

Course Resources
Special Educational Materials
Getting Started with NVIDIA Jetson Nano Part 2: Image Classification - Maker.io Tutorial Digi-Key Electronics - Video
Itsy Bitsy M0 Express - ATSAMD21 Cortex M0 Reference DesignsIntro to TensorFlow Lite Part 3: Speech Recognition on Raspberry Pi Digi-Key Electronics - Video
Adafuit Itsy Bitsy VideoDownload Archive: MP4
May 13,
2020
TensorFlow Hands-On Part 1: Hello World!

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.

Course Resources
Special Educational Materials
Getting Started with NVIDIA Jetson Nano Part 2: Image Classification - Maker.io Tutorial Digi-Key Electronics - Video
Itsy Bitsy M0 Express - ATSAMD21 Cortex M0 Reference DesignsIntro to TensorFlow Lite Part 3: Speech Recognition on Raspberry Pi Digi-Key Electronics - Video
Adafuit Itsy Bitsy VideoDownload Archive: MP4
May 14,
2020
TensorFlow Hands-On Part 2: Defining and Building Your Network

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.

Course Resources
Special Educational Materials
Getting Started with NVIDIA Jetson Nano Part 2: Image Classification - Maker.io Tutorial Digi-Key Electronics - Video
Itsy Bitsy M0 Express - ATSAMD21 Cortex M0 Reference DesignsIntro to TensorFlow Lite Part 3: Speech Recognition on Raspberry Pi Digi-Key Electronics - Video
Adafuit Itsy Bitsy VideoDownload Archive: MP4
May 15,
2020
TensorFlow Hands-On Part 3: Teaching and Testing and Conclusion

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.

Course Resources
Special Educational Materials
Getting Started with NVIDIA Jetson Nano Part 2: Image Classification - Maker.io Tutorial Digi-Key Electronics - Video
Itsy Bitsy M0 Express - ATSAMD21 Cortex M0 Reference DesignsIntro to TensorFlow Lite Part 3: Speech Recognition on Raspberry Pi Digi-Key Electronics - Video
Adafuit Itsy Bitsy VideoDownload Archive: MP4
charles-lord
Instructor
Charles J. Lord

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