Introduction to Julia Programming: Machine-Learning Models and AI

Course Outline

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

Course Dates - North America
Course Dates - Europe
Attendance Method
Additional Details (optional)