
Nanodegree key: nd089
Version: 1.0.0
Locale: en-us
Learn Python, NumPy, Pandas, Matplotlib, PyTorch, and Linear Algebra—the foundations for building your own neural network.
Content
Part 01 : Introduction to AI Programming
Welcome to the AI programming with python Nanodegree Program!
Come and explore the beautiful world of AI.
-
Module 01: Introduction to the Nanodegree
-
Lesson 01: Welcome to AI Programming with Python
Welcome to the AI Programming with Python Nanodegree program!
-
Part 02 : Intro to Python
Learn Python- one of the most widely used programming languages in the industry, particularly in AI.
-
Module 01: Lessons
-
Lesson 01: Why Python Programming
Welcome to Introduction to Python! Here's an overview of the course.
-
Lesson 02: Data Types and Operators
Familiarize yourself with the building blocks of Python! Learn about data types and operators, compound data structures, type conversion, built-in functions, and style guidelines.
- Concept 01: Introduction
- Concept 02: Arithmetic Operators
- Concept 03: Quiz: Arithmetic Operators
- Concept 04: Solution: Arithmetic Operators
- Concept 05: Variables and Assignment Operators
- Concept 06: Quiz: Variables and Assignment Operators
- Concept 07: Solution: Variables and Assignment Operators
- Concept 08: Integers and Floats
- Concept 09: Quiz: Integers and Floats
- Concept 10: Booleans, Comparison Operators, and Logical Operators
- Concept 11: Quiz: Booleans, Comparison Operators, and Logical Operators
- Concept 12: Solution: Booleans, Comparison and Logical Operators
- Concept 13: Strings
- Concept 14: Quiz: Strings
- Concept 15: Solution: Strings
- Concept 16: Type and Type Conversion
- Concept 17: Quiz: Type and Type Conversion
- Concept 18: Solution: Type and Type Conversion
- Concept 19: String Methods
- Concept 20: String Methods
- Concept 21: Another String Method - Split
- Concept 22: Lists and Membership Operators
- Concept 23: Quiz: Lists and Membership Operators
- Concept 24: Solution: List and Membership Operators
- Concept 25: List Methods
- Concept 26: Quiz: List Methods
- Concept 27: Tuples
- Concept 28: Quiz: Tuples
- Concept 29: Sets
- Concept 30: Quiz: Sets
- Concept 31: Dictionaries and Identity Operators
- Concept 32: Quiz: Dictionaries and Identity Operators
- Concept 33: Solution: Dictionaries and Identity Operators
- Concept 34: Quiz: More With Dictionaries
- Concept 35: Compound Data Structures
- Concept 36: Quiz: Compound Data Structures
- Concept 37: Solution: Compound Data Structions
- Concept 38: Conclusion
- Concept 39: Summary
-
Lesson 03: Control Flow
Build logic into your code with control flow tools! Learn about conditional statements, repeating code with loops and useful built-in functions, and list comprehensions.
- Concept 01: Introduction
- Concept 02: Conditional Statements
- Concept 03: Practice: Conditional Statements
- Concept 04: Solution: Conditional Statements
- Concept 05: Quiz: Conditional Statements
- Concept 06: Solution: Conditional Statements
- Concept 07: Boolean Expressions for Conditions
- Concept 08: Quiz: Boolean Expressions for Conditions
- Concept 09: Solution: Boolean Expressions for Conditions
- Concept 10: For Loops
- Concept 11: Practice: For Loops
- Concept 12: Solution: For Loops Practice
- Concept 13: Quiz: For Loops
- Concept 14: Solution: For Loops Quiz
- Concept 15: Quiz: Match Inputs To Outputs
- Concept 16: Building Dictionaries
- Concept 17: Iterating Through Dictionaries with For Loops
- Concept 18: Quiz: Iterating Through Dictionaries
- Concept 19: Solution: Iterating Through Dictionaries
- Concept 20: While Loops
- Concept 21: Practice: While Loops
- Concept 22: Solution: While Loops Practice
- Concept 23: Quiz: While Loops
- Concept 24: Solution: While Loops Quiz
- Concept 25: Break, Continue
- Concept 26: Quiz: Break, Continue
- Concept 27: Solution: Break, Continue
- Concept 28: Zip and Enumerate
- Concept 29: Quiz: Zip and Enumerate
- Concept 30: Solution: Zip and Enumerate
- Concept 31: List Comprehensions
- Concept 32: Quiz: List Comprehensions
- Concept 33: Solution: List Comprehensions
- Concept 34: Conclusion
-
Lesson 04: Functions
Learn how to use functions to improve and reuse your code! Learn about functions, variable scope, documentation, lambda expressions, iterators, and generators.
- Concept 01: Introduction
- Concept 02: Defining Functions
- Concept 03: Quiz: Defining Functions
- Concept 04: Solution: Defining Functions
- Concept 05: Variable Scope
- Concept 06: Variable Scope
- Concept 07: Solution: Variable Scope
- Concept 08: Documentation
- Concept 09: Quiz: Documentation
- Concept 10: Solution: Documentation
- Concept 11: Lambda Expressions
- Concept 12: Quiz: Lambda Expressions
- Concept 13: Solution: Lambda Expressions
- Concept 14: [Optional] Iterators and Generators
- Concept 15: [Optional] Quiz: Iterators and Generators
- Concept 16: [Optional] Solution: Iterators and Generators
- Concept 17: [Optional] Generator Expressions
- Concept 18: Conclusion
- Concept 19: Further Learning
-
Lesson 05: Scripting
Setup your own programming environment to write and run Python scripts locally! Learn good scripting practices, interact with different inputs, and discover awesome tools.
- Concept 01: Introduction
- Concept 02: Python Installation
- Concept 03: Install Python Using Anaconda
- Concept 04: [For Windows] Configuring Git Bash to Run Python
- Concept 05: Running a Python Script
- Concept 06: Programming Environment Setup
- Concept 07: Editing a Python Script
- Concept 08: Scripting with Raw Input
- Concept 09: Quiz: Scripting with Raw Input
- Concept 10: Solution: Scripting with Raw Input
- Concept 11: Errors and Exceptions
- Concept 12: Errors and Exceptions
- Concept 13: Handling Errors
- Concept 14: Practice: Handling Input Errors
- Concept 15: Solution: Handling Input Errors
- Concept 16: Accessing Error Messages
- Concept 17: Reading and Writing Files
- Concept 18: Quiz: Reading and Writing Files
- Concept 19: Solution: Reading and Writing Files
- Concept 20: Importing Local Scripts
- Concept 21: The Standard Library
- Concept 22: Quiz: The Standard Library
- Concept 23: Solution: The Standard Library
- Concept 24: Techniques for Importing Modules
- Concept 25: Quiz: Techniques for Importing Modules
- Concept 26: Third-Party Libraries
- Concept 27: Experimenting with an Interpreter
- Concept 28: Online Resources
- Concept 29: Conclusion
-
-
Module 02: Lab
-
Lesson 01: Lab: Classifying Images
Learn how to use a pre-trained CNN image classifier to write a script that identifies whether images are of dogs. If the image is identified as a dog, your program will identify the dog's breed.
- Concept 01: Instructor
- Concept 02: Lab Description
- Concept 03: Lab Instructions
- Concept 04: Workspace How-to
- Concept 05: Workspaces: Best Practices
- Concept 06: Lab Workspace
- Concept 07: Timing Code
- Concept 08: Command Line Arguments
- Concept 09: Mutable Data Types and Functions
- Concept 10: Creating Pet Image Labels - Part 1
- Concept 11: Creating Pet Image Labels - Part 2
- Concept 12: Classifying Images - Part 1
- Concept 13: Classifying Images - Part 2
- Concept 14: Classifying Labels as Dogs
- Concept 15: Calculating Results
- Concept 16: Printing Results
- Concept 17: Results
- Concept 18: Concluding Remarks
- Concept 19: Lab Solution Workspace
-
Part 03 : Numpy, Pandas, Matplotlib
Let's focus on library packages for Python, such as : Numpy (which adds support for large data),
Pandas (which is used for data manipulation and analysis)
And Matplotlib (which is used for data visualization).
-
Module 01: Lessons
-
Lesson 01: Anaconda
Anaconda is a package and environment manager built specifically for data. Learn how to use Anaconda to improve your data analysis workflow.
-
Lesson 02: Jupyter Notebooks
Learn how to use Jupyter Notebooks to create documents combining code, text, images, and more.
- Concept 01: Instructor
- Concept 02: What are Jupyter notebooks?
- Concept 03: Installing Jupyter Notebook
- Concept 04: Launching the notebook server
- Concept 05: Notebook interface
- Concept 06: Code cells
- Concept 07: Markdown cells
- Concept 08: Keyboard shortcuts
- Concept 09: Magic keywords
- Concept 10: Converting notebooks
- Concept 11: Creating a slideshow
- Concept 12: Finishing up
-
Lesson 03: NumPy
Learn the basics of NumPy and how to use it to create and manipulate arrays.
- Concept 01: Instructors
- Concept 02: Introduction to NumPy
- Concept 03: Why Use NumPy?
- Concept 04: Creating and Saving NumPy ndarrays
- Concept 05: Using Built-in Functions to Create ndarrays
- Concept 06: Create an ndarray
- Concept 07: Accessing, Deleting, and Inserting Elements Into ndarrays
- Concept 08: Slicing ndarrays
- Concept 09: Boolean Indexing, Set Operations, and Sorting
- Concept 10: Manipulating ndarrays
- Concept 11: Arithmetic operations and Broadcasting
- Concept 12: Creating ndarrays with Broadcasting
- Concept 13: Getting Set Up for the Mini-Project
- Concept 14: Mini-Project: Mean Normalization and Data Separation
-
Lesson 04: Pandas
Learn the basics of Pandas Series and DataFrames and how to use them to load and process data.
- Concept 01: Instructors
- Concept 02: Introduction to Pandas
- Concept 03: Why Use Pandas?
- Concept 04: Creating Pandas Series
- Concept 05: Accessing and Deleting Elements in Pandas Series
- Concept 06: Arithmetic Operations on Pandas Series
- Concept 07: Manipulate a Series
- Concept 08: Creating Pandas DataFrames
- Concept 09: Accessing Elements in Pandas DataFrames
- Concept 10: Dealing with NaN
- Concept 11: Manipulate a DataFrame
- Concept 12: Loading Data into a Pandas DataFrame
- Concept 13: Getting Set Up for the Mini-Project
- Concept 14: Mini-Project: Statistics From Stock Data
-
Lesson 05: Matplotlib and Seaborn Part 1
Learn how to use matplotlib and seaborn to visualize your data. In this lesson, you will learn how to create visualizations to depict the distributions of single variables.
- Concept 01: Instructor
- Concept 02: Introduction
- Concept 03: Tidy Data
- Concept 04: Bar Charts
- Concept 05: Absolute vs. Relative Frequency
- Concept 06: Counting Missing Data
- Concept 07: Bar Chart Practice
- Concept 08: Pie Charts
- Concept 09: Histograms
- Concept 10: Histogram Practice
- Concept 11: Figures, Axes, and Subplots
- Concept 12: Choosing a Plot for Discrete Data
- Concept 13: Descriptive Statistics, Outliers and Axis Limits
- Concept 14: Scales and Transformations
- Concept 15: Scales and Transformations Practice
- Concept 16: Lesson Summary
- Concept 17: Extra: Kernel Density Estimation
-
Lesson 06: Matplotlib and Seaborn Part 2
In this lesson, you will use matplotlib and seaborn to create visualizations to depict the relationships between two variables.
- Concept 01: Introduction
- Concept 02: Scatterplots and Correlation
- Concept 03: Overplotting, Transparency, and Jitter
- Concept 04: Heat Maps
- Concept 05: Scatterplot Practice
- Concept 06: Violin Plots
- Concept 07: Box Plots
- Concept 08: Violin and Box Plot Practice
- Concept 09: Clustered Bar Charts
- Concept 10: Categorical Plot Practice
- Concept 11: Faceting
- Concept 12: Adaptation of Univariate Plots
- Concept 13: Line Plots
- Concept 14: Additional Plot Practice
- Concept 15: Lesson Summary
- Concept 16: Postscript: Multivariate Visualization
- Concept 17: Extra: Swarm Plots
- Concept 18: Extra: Rug and Strip Plots
-
Part 04 : Linear Algebra Essentials
Learn the basics of the beautiful world of Linear Algebra and
why it is such an important mathematical tool in the world of AI.
-
Module 01: Lessons
-
Lesson 01: Introduction
Take a sneak peek into the beautiful world of Linear Algebra and learn why it is such an important mathematical tool.
-
Lesson 02: Vectors
Learn about vectors, the basic building block of Linear Algebra.
- Concept 01: What's a Vector?
- Concept 02: Vectors, what even are they? Part 2
- Concept 03: Vectors, what even are they? Part 3
- Concept 04: Vectors- Mathematical definition
- Concept 05: Transpose
- Concept 06: Magnitude and Direction
- Concept 07: Vectors- Quiz 1
- Concept 08: Operations in the Field
- Concept 09: Vector Addition
- Concept 10: Vectors- Quiz 2
- Concept 11: Scalar by Vector Multiplication
- Concept 12: Vectors Quiz 3
- Concept 13: Vectors Quiz Answers
-
Lesson 03: Linear Combination
Learn how to scale and add vectors and how to visualize the process.
- Concept 01: Linear Combination. Part 1
- Concept 02: Linear Combination. Part 2
- Concept 03: Linear Combination and Span
- Concept 04: Linear Combination -Quiz 1
- Concept 05: Linear Dependency
- Concept 06: Solving a Simplified Set of Equations
- Concept 07: Linear Combination - Quiz 2
- Concept 08: Linear Combination - Quiz 3
-
Lesson 04: Linear Transformation and Matrices
What is a linear transformation and how is it directly related to matrices? Learn how to apply the math and visualize the concept.
- Concept 01: What is a Matrix?
- Concept 02: Matrix Addition
- Concept 03: Matrix Addition Quiz
- Concept 04: Scalar Multiplication of Matrix and Quiz
- Concept 05: Multiplication of a Square Matrices
- Concept 06: Square Matrix Multiplication Quiz
- Concept 07: Matrix Multiplication - General
- Concept 08: Matrix Multiplication Quiz
- Concept 09: Linear Transformation and Matrices . Part 1
- Concept 10: Linear Transformation and Matrices. Part 2
- Concept 11: Linear Transformation and Matrices. Part 3
- Concept 12: Linear Transformation Quiz Answers
-
-
Module 02: Labs
-
Lesson 01: Vectors Lab
Learn how to graph 2D vectors.
-
Lesson 02: Linear Combination Lab
Learn how to computationally determine a vector's span and solve a simple system of equations.
-
Lesson 03: Linear Mapping Lab
Learn how to solve some problems computationally using vectors and matrices.
-
Lesson 04: Linear Algebra in Neural Networks
Take a peek into the world of Neural Networks and see how it related directly to Linear Algebra!
-
Part 05 : Neural Networks
Acquire a solid foundation in deep learning and neural networks.
Learn about techniques for how to improve the training of a neural
network, and how to use PyTorch for building deep learning models.
-
Module 01: Deep Learning
-
Lesson 01: Introduction to Neural Networks
In this lesson, Luis will give you solid foundations on deep learning and neural networks. You'll also implement gradient descent and backpropagation in python right here in the classroom.
- Concept 01: Instructor
- Concept 02: Introduction
- Concept 03: Classification Problems 1
- Concept 04: Classification Problems 2
- Concept 05: Linear Boundaries
- Concept 06: Higher Dimensions
- Concept 07: Perceptrons
- Concept 08: Why "Neural Networks"?
- Concept 09: Perceptrons as Logical Operators
- Concept 10: Perceptron Trick
- Concept 11: Perceptron Algorithm
- Concept 12: Non-Linear Regions
- Concept 13: Error Functions
- Concept 14: Log-loss Error Function
- Concept 15: Discrete vs Continuous
- Concept 16: Softmax
- Concept 17: One-Hot Encoding
- Concept 18: Maximum Likelihood
- Concept 19: Maximizing Probabilities
- Concept 20: Cross-Entropy 1
- Concept 21: Cross-Entropy 2
- Concept 22: Multi-Class Cross Entropy
- Concept 23: Logistic Regression
- Concept 24: Gradient Descent
- Concept 25: Logistic Regression Algorithm
- Concept 26: Pre-Lab: Gradient Descent
- Concept 27: Notebook: Gradient Descent
- Concept 28: Perceptron vs Gradient Descent
- Concept 29: Continuous Perceptrons
- Concept 30: Non-linear Data
- Concept 31: Non-Linear Models
- Concept 32: Neural Network Architecture
- Concept 33: Feedforward
- Concept 34: Backpropagation
- Concept 35: Pre-Lab: Analyzing Student Data
- Concept 36: Notebook: Analyzing Student Data
- Concept 37: Outro
-
Lesson 02: Implementing Gradient Descent
Mat will introduce you to a different error function and guide you through implementing gradient descent using numpy matrix multiplication.
- Concept 01: Mean Squared Error Function
- Concept 02: Gradient Descent
- Concept 03: Gradient Descent: The Math
- Concept 04: Gradient Descent: The Code
- Concept 05: Implementing Gradient Descent
- Concept 06: Multilayer Perceptrons
- Concept 07: Backpropagation
- Concept 08: Implementing Backpropagation
- Concept 09: Further Reading
-
Lesson 03: Training Neural Networks
Now that you know what neural networks are, in this lesson you will learn several techniques to improve their training.
- Concept 01: Instructor
- Concept 02: Training Optimization
- Concept 03: Testing
- Concept 04: Overfitting and Underfitting
- Concept 05: Early Stopping
- Concept 06: Regularization
- Concept 07: Regularization 2
- Concept 08: Dropout
- Concept 09: Local Minima
- Concept 10: Random Restart
- Concept 11: Vanishing Gradient
- Concept 12: Other Activation Functions
- Concept 13: Batch vs Stochastic Gradient Descent
- Concept 14: Learning Rate Decay
- Concept 15: Momentum
- Concept 16: Error Functions Around the World
-
Lesson 04: Deep Learning with PyTorch
Learn how to use PyTorch for building deep learning models
- Concept 01: Instructor
- Concept 02: Introducing PyTorch
- Concept 03: PyTorch Tensors
- Concept 04: Defining Networks
- Concept 05: Training Networks
- Concept 06: Fashion-MNIST Exercise
- Concept 07: Inference & Validation
- Concept 08: Saving and Loading Trained Networks
- Concept 09: Loading Data Sets with Torchvision
- Concept 10: Transfer Learning
- Concept 11: Transfer Learning Solution
-
Part 06 : Create Your Own Image Classifier
In the second and final project for this course, you'll build a state-of-the-art image classification application.
-
Module 01: Project
-
Lesson 01: Create Your Own Image Classifier
In this project, you'll build a Python application that can train an image classifier on a dataset, then predict new images using the trained model.
- Concept 01: Instructor
- Concept 02: Project Intro
- Concept 03: Introduction to GPU Workspaces
- Concept 04: Updating to PyTorch v0.4
- Concept 05: Image Classifier - Part 1 - Development
- Concept 06: Image Classifier - Part 1 - Workspace
- Concept 07: Image Classifier - Part 2 - Command Line App
- Concept 08: Image Classifier - Part 2 - Workspace
- Concept 09: Rubric
-
Part 07 : Next Steps!
Congratulations!!!!! You finished your first nanodegree in the School of AI! What are the next steps?
-
Module 01: How Do I Continue From Here?
Part 08 (Elective): GitHub
-
Module 01: Version Control with Git
-
Lesson 01: What is Version Control?
Version control is an incredibly important part of a professional programmer's life. In this lesson, you'll learn about the benefits of version control and install the version control tool Git!
-
Lesson 02: Create A Git Repo
Now that you've learned the benefits of Version Control and gotten Git installed, it's time you learn how to create a repository.
-
Lesson 03: Review a Repo's History
Knowing how to review an existing Git repository's history of commits is extremely important. You'll learn how to do just that in this lesson.
-
Lesson 04: Add Commits To A Repo
A repository is nothing without commits. In this lesson, you'll learn how to make commits, write descriptive commit messages, and verify the changes you're about to save to the repository.
-
Lesson 05: Tagging, Branching, and Merging
Being able to work on your project in isolation from other changes will multiply your productivity. You'll learn how to do this isolated development with Git's branches.
-
Lesson 06: Undoing Changes
Help! Disaster has struck! You don't have to worry, though, because your project is tracked in version control! You'll learn how to undo and modify changes that have been saved to the repository.
-
-
Module 02: GitHub & Collaboration
-
Lesson 01: Working With Remotes
You'll learn how to create remote repositories on GitHub and how to get and send changes to the remote repository.
-
Lesson 02: Working On Another Developer's Repository
In this lesson, you'll learn how to fork another developer's project. Collaborating with other developers can be a tricky process, so you'll learn how to contribute to a public project.
-
Lesson 03: Staying In Sync With A Remote Repository
You'll learn how to send suggested changes to another developer by using pull requests. You'll also learn how to use the powerful
git rebase
command to squash commits together.
-
Part 09 (Elective): Shell Workshop
The Unix shell is a powerful tool for developers of all sorts. In this lesson, you'll get a quick introduction to the very basics of using it on your own computer.
-
Module 01: Unix Shell
-
Lesson 01: Shell Workshop
The Unix shell is a powerful tool for developers of all sorts. In this lesson, you'll get a quick introduction to the very basics of using it on your own computer.
- Concept 01: Welcome!
- Concept 02: Windows: Installing Git Bash
- Concept 03: Opening a terminal
- Concept 04: Your first command (echo)
- Concept 05: Navigating directories (ls, cd, ..)
- Concept 06: Current working directory (pwd)
- Concept 07: Parameters and options (ls -l)
- Concept 08: Organizing your files (mkdir, mv)
- Concept 09: Downloading (curl)
- Concept 10: Viewing files (cat, less)
- Concept 11: Removing things (rm, rmdir)
- Concept 12: Searching and pipes (grep, wc)
- Concept 13: Shell and environment variables
- Concept 14: Startup files (.bash_profile)
- Concept 15: Controlling the shell prompt ($PS1)
- Concept 16: Aliases
- Concept 17: Keep learning!
-
Part 10 (Elective): Intro to Machine Learning
-
Module 01: Intro to Machine Learning
-
Lesson 01: Intro
An introduction to what you'll learn in this course!
-
Lesson 02: Linear Regression
Learn how effective linear regression algorithms are in predicting numerical data
-
Lesson 03: Logistic Regression
Learn about one of the most basic forms of regression modeling - logistic regression
-
Lesson 04: Decision Trees
Learn how decision trees are a structure for decision-making where each decision leads to a set of consequences or additional decisions.
-
Lesson 05: Naive Bayes
Learn how powerful Naive Bayesian Algorithms are for creating classifiers for incoming labeled data.
-
Lesson 06: Support Vector Machines
Learn about how support vector machines can be effective models for classification.
-
Lesson 07: Ensemble Methods
Learn about bagging and boosting, two common ensemble methods for improving the accuracy of supervised learning approaches.
-
Lesson 08: Outro
Let's recap and wrap up what we've learned.
-
Part 11 (Elective): Learning Rate
Still curious about the learning rate, how sensitive it is and what role it plays in the accuracy of the training process?
-
Module 01: Learning Rate