Introduction to Julia Programming: Machine-Learning Models and AI
As machine learning and artificial intelligence algorithms grow more sophisticated, the need for a high-performance development environment grows greater and greater. Julia is a programming language designed to feel like a comfortable scripting environment, like Python, but able to deliver the high performance of fully compiled languages like C and Fortran. In this course, we introduce the fundamentals of coding in Julia, always with an eye towards programming techniques currently finding application in cutting-edge machine learning and artificial intelligence. Introduction to Julia Programming: Machine-Learning Models and AI Benefits In this Julia programming training, you will learn how to: Craft efficient code in the high-performance programming language, Julia Create machine-learning models in Julia Understand the vector and matrix methods common to all neural network models Interact with other AI platforms, like PyTorch and TensorFlow Prerequisites Attendees must have programming experience. Julia Machine-Learning Models Training Outline Chapter 1 – Introduction and Overview What is Julia? LLVM Installing and Using Julia The Julia REPL semicolon works as in MATLAB Julia IDEs Installing the Julia kernel for Jupyter notebooks VS Code Hands-On Exercise 1.1 Chapter 2 – Fundamentals of the Julia Language Variables and Types in Julia Integers No overflow checking Floats Strings Characters versus strings Strings are assumed to be UTF-8 print println formatted printing Dates Using Latex Symbols Best Practices for Datatypes Best practice: Ensure the compiler can correctly deduce type Hands-On Exercise 2.1 Julia DataFrames Interoperating with Pandas DataFrames Julia Operators and Functions Functions and operators pipe operator Function composition Tuple arguments are immutable Array arguments are mutable Variable number of arguments Broadcasting a function Anonymous functions Contents - Multiple Dispatch Multiple Dispatch Function Signatures Hands-On Exercise 2.2 Julia Macros Hands-On Exercise 2.3 Chapter 3 – Julia Arrays Arrays Julia matrices are in column-major order Linear and Cartesian indexes EachIndex operator Arrays with custom indices Hands-On Exercise 3.1 Applications of Matrices Special Array and Matrix types Introduction to Matrices in Artificial Intelligence Hands-On Exercise 3.2 Introductory numerical analysis Matrices – Norms and Conditioning Differential Equations Hands-On Exercise 3.3 Chapter 4 – Input and Output FileIO Package Standard File Types Implementing Loaders and Saves Hands-On Exercise 4.1 Graphics Output Plotting from the Julia REPL Plotting in Julia Notebooks Hands-On Exercise 4.2 Chapter 5 – Putting machine learning theory into practice Statistical modeling Machine Learning Hands-On Exercise 5.1 Chapter 6 – Neural Networks with Julia Neural Network Basics in Julia Hands-On Exercise 6.1 Advanced Neural Network Libraries in Julia Performance Tuning for Neural Networks Quantization of Neural Networks Hands-On Exercise 6.2 Chapter 7 – Debugging, Profiling, and High-Performance Julia The Julia Debugger High-Performance Julia Principles of high-performance programming Profiling Julia code Hands-On Exercise 7.1 Parallel Processing Multithreading Multiprocessing Distributed processing Hands-On Exercise 7.2 Chapter 8 – Interoperating with other Artificial Intelligence Platforms Julia with TensorFlow and PyTorch ONNX Creating a computer vision system Picking a model from the “zoo” ResNet Hands-On Exercise 8.1 Chapter 9 – Course Summary