An interactive book on deep learning. Much easy, so Knet. Wow.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
chapter02_supervised-learning fix typo Mar 14, 2018
chapter03_deep-neural-networks update Dec 10, 2017
chapter04_convolutional-neural-networks fix typo Mar 14, 2018
chapter05_recurrent-neural-networks update Dec 10, 2017
chapter12_time-series added benchmark Dec 11, 2017
datasets fixed typo Mar 14, 2018
img update Dec 3, 2017 updated cover Dec 12, 2017



This repo is the Julia translation of the mxnet-the-straight-dope repo, a collection of notebooks designed to teach deep learning, MXNet, and the gluon interface. This project grew out of the MIT course 6.338 Modern Numerical Computing with Julia taught by professor Alan Edelman. Our main objectives are:

  • Introduce the Julia language and its main packages in the context of deep learning
  • Introduce Julia's package Knet: an alternative/complementary option to MXNet
  • Leverage the strengths of Jupyter notebooks to present prose, graphics, equations, and code together in one place

Wherever possible we provide Julia's version of any particular code. However, in many instances Julia can achieve the same goal with fewer or different commands such that a direct (or one two one) translation is either impossible or cumbersome. Thus, at our discretion we may replace large blocks of code with a significanly different Julia version, though our objective is to stay true to the essense and goal of the original work.

In addition to offering a complementary Julia version, wherever possible we also replace or modify examples to experiment with different datasets (with a focus on medical data) for any particular topic (in which case the reader is referred to the original example for context), and we offer additional theoretical explanations whenever approapiate. Finally, with the same spirit of its predecessor, we welcome contributions from the community and hope to coauthor chapters and entire sections with experts and community members.

New Datasets

In this repo we implement new examples with different datasets, including:

Implementation with Knet

Throughout this book, we rely upon Julia's package Knet. Knet relies on the AutoGrad package and the KnetArray data type for its functionality and performance. AutoGrad computes the gradient of Julia functions and KnetArray implements high performance GPU arrays with custom memory management.

We make heavy use of packages like JuliaDB, Plots and the plotting backend GR,HDF5, Distributions, and ofcourse Knet


To run these notebooks, you'll want to install Julia and add all the required packages (this is done automatically for you at the start of every notebook) that we will use throughout this tutorial. Fortunately, after installing Julia this is very easy with the command Pkg.add('PackageName'). You'll also want to install IJulia, a Julia kernel for Jupyter.

Table of contents

Part 1: Deep Learning Fundamentals

Part 2: Applications