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.
Attendees must have programming experience.
Attendees will have the opportunity to take the Learning Tree exam upon completion.
Introduction to Julia Programming for Artificial Intelligence Training Delivery Methods
- After-course instructor coaching included
- Learning Tree end-of-course exam included
Introduction to Julia Programming for Artificial Intelligence Training Course Benefits
Craft efficient code in the high-performance programming language, JuliaCreate machine-learning models in JuliaUnderstand the vector and matrix methods common to all neutral network modelsInteract with other AI platforms, like PyTorch and TensorFlow
Julia Programming 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
- 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 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
- Hands-On Exercise 2.2
- 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
- Quantization 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