This is a compilation of the recommended prerequisites and resources for students entering Udacity's Self-Driving Car Engineer Nanodegree program.
- What is it?
- Why use it?
- How to use it
- Programming Languages
- Mathematics
- Deep Learning
- Frameworks
- Physics
- More
This list was put together by instructors, mentors, and members of the SDCND slack channel to prepare incoming students for the SDCND program. The recommended resources are not manditory, the important thing is that students have sufficient knowledge of the topics mentioned.
In a perfect world, incoming students would have:
Intermediate Python (Numpy, Classes)
Intermediate C++ (Memory Allocation, References, Classes)
Basic Linear Algebra (Matrix Multiplication)
Basic Calculus (Derivatives, Integrals)
Basic Statistics (Mean, Standard Deviation, Probability, Distributions)
Basic Physics (Velocity, Torque, Forces)
-- David Silver, Self-Driving Car Lead (Udacity)
Everything below is an outline, though the content is not listed in any particular order. Some areas have multiple resources covering the same topic, so choosing one of the resources is sufficient. I suggest reading the syllabus and watching a lecture or two to see which resource seems better suited for your learning style.
I'm using Github's special markdown flavor, including tasks lists to check progress.
- Create a new branch so you can check items to record your progress. Just put an x in the brackets: [x]
More about Github-flavored markdown
-
Adequate Python Knowledge
-
Adequate C++ Knowledge
-
Adequate Linear Algebra Knowledge
-
Adequate Calculus Knowledge
-
Adequate Statistics Knowledge
-
Adequate Machine Learning Knowledge
-
Adequate Neural Networks Knowledge
-
Adequate Artificial Intelligence Knowledge
-
Adequate Computer Vision Knowledge
-
Adequate Robotics Knowledge
-
Adequate OpenCV Knowledge
-
Adequate TensorFlow Knowledge
- Adequate Physics Knowledge
- Deep Learning Papers Reading Roadmap
- Machine Learning Tutorials (list)
- Bay Area Deep Learning School Day 1
- UC Berkeley CS188 Intro to AI lecture (Reinforcement Learning)
- Deep Learning Datasets (for public download)
- Benchmarking (classifier performance)
- On using LibPointMatcher (http://libpointmatcher.readthedocs.io/en/latest/ApplicationsAndPub/) to map dynamic environments with LIDAR
- Reddit for Self-Driving Cars
- Reddit discussion on advanced ML courses
- DeepBench by BaiduResearch benchmarks hardware performance
- Federal Automated Vehicles Announcement and Policy
- Browse arXiv for research papers
- Browse GitXiv for papers and code
- Github TensorFlow Tutorial
- Comma.ai Steering Angle Model
- Keras Tutorial using word embeddings
- Installing Docker and TensorFlow
- Another example of installing Docker and TensorFlow
- Setting up GPU on AWS
- Blog post on running TensorFlow with Jupyter Notebook on AWS
- DL4J vs. Torch vs. Theano vs. Caffe vs. TensorFlow (written by DL4J)
- Write an AI to win at Pong using reinforcement learning
- Implement VGG in TensorFlow
- How to build a robot that "sees" with $100 and TensorFlow
- Learning a Driving Simulator
- End to End Learning for Self-Driving Cars
- Using Artificial Intelligence to create a low cost self-driving car
- Classification, Detection and Counting of Cars with Deep Learning
- 3D Urban Scene Understanding
- Introduction to TensorFlow
- Video Prediction and Unsupervised Learning
- Very Deep Convolutional Networks
- Deep Learning Overview
- WaveNet
- Multilevel Residual Networks
- Inception-v4, Inception-ResNet
- Oxford Visual Geometry Group (VGG)
- How to build an autonomous vehicle
- How Convolutional Networks Work
- Autoware provides open-source code