Introduction to Julia Programming: Machine-Learning Models and AI

Course 1267

  • Duration: 3 days
  • Labs: Yes
  • Language: English
  • Level: Intermediate

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.

Julia Machine-Learning Models Training Delivery Methods

  • In-Person

  • Live-Online

Julia Machine-Learning Models Training Course Information

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

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

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

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

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

Statistical modeling

Machine Learning

Hands-On Exercise 5.1

Neural Network Basics in Julia

Hands-On Exercise 6.1

Advanced Neural Network Libraries in Julia

Performance Tuning for Neural Networks

Quantisation of Neural Networks

Hands-On Exercise 6.2

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

Julia with TensorFlow and PyTorch

ONNX

Creating a computer vision system

Picking a model from the “zoo”

ResNet

Hands-On Exercise 8.1

Need Help Finding The Right Training Solution?

Our training advisors are here for you.

Julia Machine-Learning Models Training FAQs

This course introduces Julia but assumes the student has experience with some programming language such as Python, C#, or Java.

This course explores some of the more technical aspects of neural networks and is probably not suitable for managers and non-technical students.

Yes! This course is designed for developers, and programmers, who wish to delve deeper into neural networks and AI.

Not likely. Developers wishing only to apply existing neural network architectures might be better served by a course in PyTorch or TensorFlow.