Deep Learning on AWS - Tips and Tricks

This is my list of hints and tips for this course. It’s markdown so you can save it, access it or store it anywhere. I might also give you other links that are course specific. I’ll add specific answers to questions I get during the course. I’ll share it with everyone.

Your Instructor

Administrivia

We need to jump through some hoops to get access to the labs, notes and my hints and tips. Be consistent with the email address you use for all sites. There are three seperate sites you need to access and one bitly link which is this page:

  • Join or login to https://www.aws.training/ to ensure your training and certifications are captured. No we don’t spam you or sell your details.
  • Access Qwiklab (yes it is spelt INCORRECTLY)
    • aws.qwiklabs.com for the labs in this class
    • run.qwiklabs.com for outside of the class or to do other labs at your own pace. NOTE: Some are free others require course credits. Also check out the AWS Professional Developer Series of MOOCs on edX https://www.edx.org/aws-developer-professional-series
  • Access the course notes and slides. You’ll receive two emails. One confirming your attendance at this course and with the following links. The download link seems broken. You can download apps for phones, tablets and laptops. Or use your browser.
  • www.vitalsource.com look for a signup link and download link. Or just go to https://evantage.gilmoreglobal.com/#/user/signin
  • Once you’ve logged into Vitalsource (aka Bookshelf, Gilmore, eVantage) you can redeem your unique course materials code (in a seperate email) and update your book list. You should see a lab guide and student guide for Deep Learning on AWS, version 1.4 . The student guide is the powerpoint decks and notes and the lab guide is the step by step instructions for the labs. The lab guide is included in the labs so this document is somewhat redundant. You can download the Vitalsource Bookshelf app for Windows, Mac, IoS and Android at https://support.vitalsource.com/hc/en-us/articles/201344733-Bookshelf-Download-Page
  • You can print the student and lab guides to pdf from the app.

Deep Learning Resources

  • Dive into Deep Learning, An interactive deep learning book with code, math, and discussions that is authored and maintained by Amazon AI specialists. https://d2l.ai/. Think textbook and Jupyter notebooks integrated in a learning portal.
  • MIT Online Deep Learning book / labs https://www.deeplearningbook.org/ This is a good read for anyone wanting a refresher or first broad look at Deep Learning.
  • CNNs Explained in a relatively short blog post interspesed with graphics. https://www.freecodecamp.org/news/an-intuitive-guide-to-convolutional-neural-networks-260c2de0a050/
    • Note that CNNs can parellize, within a sequennce, but cannot capture sequential information like a long sentence
    • RNNs however can capture sequential information but aren’t able to parallelize with a sequence A transformer combines CNN and RNN for NLP. Well suited to translation and difficult transcription workloads
  • Andrew Ng’s Convolutional Neural Networks Course on Coursera. https://www.coursera.org/learn/convolutional-neural-networks/home/welcome He has a ton of experience and his explanations on Deep Learning are easy to comprehend

Academic papers

Data Sets

Cool links

Visualizing a Deep Learning Model at work

Controversy around AI (Dealing with the Hype)

Governance of Data Science

Comparisons of ML and DL

ML and DL Libraries, Frameworks and APIs

  • ML and DL Libraries
    • XGBoost - for structured and tabular data. Popular in Kaggle competitions.
    • TensorFlow - Symbolic math library for dataflow programming. Implements the define-and-run or static-graph approach. More of a black box approach.
    • PyTorch - Combines Python and Lua for performance. For computer vision and neural linguistic programming. Supports the define and run approach and provides more visibility into how the model learns. Uber’s Pyro probabilistic programming language software uses PyTorch as a backend. Caffe2 has been merged into Pytorch as of Mar 2018.
  • Deep Learning Frameworks
    • Caffe - Vision, Speech and Multimedia. Caffe can process over 60M images per day with a single NVIDIA K40 GPU. That’s 1 ms/image for inference and 4 ms/image for learning and more recent library versions and hardware are faster still. Caffe is often considered to be among the fastest convnet implementations available.
    • MXNet - For CNNs and LSTM deep learning. Cloud support and by AWS. Here’s a good primer on MXNet https://mxnet.incubator.apache.org/versions/master/faq/why_mxnet.html
    • Chainer - Python specific including Numpy and Cupy. First to implement define-by-run or dynamic-graph approach, the connection in a network is not determined when the training is started. The network is determined during the training as the actual calculation is performed. Works well with the Nvidia Cuda GPU library
  • Optimizing Compilers
    • Theano - Python library and optimizing compiler for manipulating and evaluating mathematical expressions, especially matrix-valued ones. Especially symobolic differentiation. Implements the define-and-run or static-graph approach
  • ML and DL APIs
    • Keras Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. It was developed with a focus on enabling fast experimentation.
    • CUDA - NVIDIA C++ GPU max bandwidth toolkit https://devblogs.nvidia.com/even-easier-introduction-cuda/
    • Gluon is an imperative API for MXNet that’s flexible and easy-to-use

ML and DL Architectures on AWS

MLOps

  • The ML, DL and AI space is not well supported with mature developer tools for managing infrastructure, CICD, delivery and deployments. An emerging capability around MLOps is gaining traction. But ML CICD and Ops is fundamentally different to what devs and applications know and do today.
  • From AWS re:Invent 2019: Continuous deployment for ML: The new software development lifecycle (DEM30-S)
    • Machine learning (ML) will fundamentally change the way we build and maintain applications. How can we adapt our infrastructure, operations, staffing, and training to meet the challenges of the new software development lifecycle (SDLC) without throwing away everything that already works? ML is the future of application development, but presently, many ML teams are flailing without a process or trying to shoehorn their ML workflow into tools that don’t fit the requirements.
    • https://www.youtube.com/watch?v=_ImmIRDHUtY&list=PLWaYLZud5zZlsPSM1IWfbXzEwqBtgcx_Z&index=38&t=0s

Object Detection

Time Series Forecasting

Cost Management of AI

Building ML / DL Containers on AWS

Sagemaker and Jupyter Notebooks Links

Compute links

  • Here’s a useful sortable table of EC2 instance types, sizes and specifications. Not your add columns like available for EMR which makes instance selection very simple. https://ec2instances.info/

Graph Database Links

Programming Constructs

Self paced Learning and Building

Continue reading articles in my Amazon Web Services series