Deeplearning4j
Community ForumND4J JavadocDL4J Javadoc
EN 1.0.0-M2
EN 1.0.0-M2
  • Deeplearning4j Suite Overview
  • Release Notes
    • 1.0.0-M2
    • 1.0.0-M1.1
    • 1.0.0-M1
    • 1.0.0-beta7
    • 1.0.0-beta6
    • 1.0.0-beta5
    • 1.0.0-beta4
    • 1.0.0-beta3
    • 1.0.0-beta2
    • 1.0.0-beta
    • 1.0.0-alpha
    • 0.9.1
    • 0.9.0
    • 0.8.0
    • 0.7.2
    • 0.7.1
    • 0.7.0
    • 0.6.0
    • 0.5.0
    • 0.4.0
    • 1.00-M2.2
  • Multi-Project
    • Tutorials
      • Beginners
      • Quickstart
    • How To Guides
      • Import in to your favorite IDE
      • Contribute
        • Eclipse Contributors
      • Developer Docs
        • Github Actions/Build Infra
        • Javacpp
        • Release
        • Testing
      • Build From Source
      • Benchmark
      • Beginners
    • Reference
      • Examples Tour
    • Explanation
      • The core workflow
      • Configuration
        • Backends
          • Performance Issues
          • CPU
          • Cudnn
        • Memory
          • Workspaces
      • Build Tools
      • Snapshots
      • Maven
  • Deeplearning4j
    • Tutorials
      • Quick Start
      • Language Processing
        • Doc2Vec
        • Sentence Iterator
        • Tokenization
        • Vocabulary Cache
    • How To Guides
      • Custom Layers
      • Keras Import
        • Functional Models
        • Sequential Models
        • Custom Layers
        • Keras Import API Overview
          • Advanced Activations
          • Convolutional Layers
          • Core Layers
          • Embedding Layers
          • Local Layers
          • Noise Layers
          • Normalization Layers
          • Pooling Layers
          • Recurrent Layers
          • Wrapper Layers
        • Supported Features Overview
          • Activations
          • Constraints
          • Initializers
          • Losses
          • Optimizers
          • Regularizers
      • Tuning and Training
        • Visualization
        • Troubleshooting Training
        • Early Stopping
        • Evaluation
        • Transfer Learning
    • Reference
      • Model Zoo
        • Zoo Models
      • Activations
      • Auto Encoders
      • Computation Graph
      • Convolutional Layers
      • DataSet Iterators
      • Layers
      • Model Listeners
      • Saving and Loading Models
      • Multi Layer Network
      • Recurrent Layers
      • Updaters/Optimizers
      • Vertices
      • Word2vec/Glove/Doc2Vec
    • Explanation
  • datavec
    • Tutorials
      • Overview
    • How To Guides
    • Reference
      • Analysis
      • Conditions
      • Executors
      • Filters
      • Normalization
      • Operations
      • Transforms
      • Readers
      • Records
      • Reductions
      • Schemas
      • Serialization
      • Visualization
    • Explanation
  • Nd4j
    • Tutorials
      • Quickstart
    • How To Guides
      • Other Framework Interop
        • Tensorflow
        • TVM
        • Onnx
      • Matrix Manipulation
      • Element wise Operations
      • Basics
    • Reference
      • Op Descriptor Format
      • Tensor
      • Syntax
    • Explanation
  • Samediff
    • Tutorials
      • Quickstart
    • How To Guides
      • Importing Tensorflow
      • Adding Operations
        • codegen
    • Reference
      • Operation Namespaces
        • Base Operations
        • Bitwise
        • CNN
        • Image
        • LinAlg
        • Loss
        • Math
        • NN
        • Random
        • RNN
      • Variables
    • Explanation
      • Model Import Framework
  • Libnd4j
    • How To Guides
      • Building on Windows
      • Building for raspberry pi or Jetson Nano
      • Building on ios
      • How to Add Operations
      • How to Setup CLion
    • Reference
      • Understanding graph execution
      • Overview of working with libnd4j
      • Helpers Overview (CUDNN, OneDNN,Armcompute)
    • Explanation
  • Python4j
    • Tutorials
      • Quickstart
    • How To Guides
      • Write Python Script
    • Reference
      • Python Types
      • Python Path
      • Garbage Collection
      • Python Script Execution
    • Explanation
  • Spark
    • Tutorials
      • DL4J on Spark Quickstart
    • How To Guides
      • How To
      • Data How To
    • Reference
      • Parameter Server
      • Technical Reference
    • Explanation
      • Spark API Reference
  • codegen
Powered by GitBook
On this page
  • How Do I Start Using Deep Learning?
  • Free Machine- and Deep-learning Courses Online
  • Math
  • Programming
  • Python
  • Java
  • Deeplearning4j
  • Other Resources

Was this helpful?

Export as PDF
  1. Multi-Project
  2. How To Guides

Beginners

Road map for beginners new to deep learning.

PreviousBenchmarkNextReference

Last updated 3 years ago

Was this helpful?

How Do I Start Using Deep Learning?

Where you start depends on what you already know.

The prerequisites for really understanding deep learning are linear algebra, calculus and statistics, as well as programming and some machine learning. The prerequisites for applying it are just learning how to deploy a model.

In the case of Deeplearning4j, you should know Java well and be comfortable with tools like the IntelliJ IDE and the automated build tool Maven.

Below you'll find a list of resources. The sections are roughly organized in the order they will be useful.

Free Machine- and Deep-learning Courses Online

  • (For those interested in a survey of artificial intelligence.)

  • (For those interested in image recognition.)

Math

The math involved with deep learning is basically linear algebra, calculus and probility, and if you have studied those at the undergraduate level, you will be able to understand most of the ideas and notation in deep-learning papers. If haven't studied those in college, never fear. There are many free resources available (and some on this website).

Programming

If you do not know how to program yet, you can start with Java, but you might find other languages easier. Python and Ruby resources can convey the basic ideas in a faster feedback loop. "Learn Python the Hard Way" and "Learn to Program (Ruby)" are two great places to start.

Python

Java

Once you have programming basics down, tackle Java, the world's most widely used programming language. Most large organizations in the world operate on huge Java code bases. (There will always be Java jobs.) The big data stack -- Hadoop, Spark, Kafka, Lucene, Solr, Cassandra, Flink -- have largely been written for Java's compute environment, the JVM.

Deeplearning4j

Other Resources

; Patrick van der Smagt

(Vim is an editor accessible from the command line.)

If you want to jump into deep-learning from here without Java, we recommend and the various Python frameworks built atop it, including and .

With that under your belt, we recommend you approach Deeplearning4j through its .

Most of what we know about deep learning is contained in academic papers. You can find some of the major research groups .

While individual courses have limits on what they can teach, the Internet does not. Most math and programming questions can be answered by Googling and searching sites like and .

Andrew Ng's Machine-Learning Class on YouTube
Geoff Hinton's Neural Networks Class on YouTube
Patrick Winston's Introduction to Artificial Intelligence @MIT
Andrej Karpathy's Convolutional Neural Networks Class at Stanford
ML@B: Machine Learning Crash Course: Part 1
ML@B: Machine Learning Crash Course: Part 2
Gradient descent, how neural networks learn, Deep learning, part 2
Calculus Made Easy, by Silvanus P. Thompson
Seeing Theory: A Visual Introduction to Probability and Statistics
Andrew Ng's 6-Part Review of Linear Algebra
Khan Academy's Linear Algebra Course
Linear Algebra for Machine Learning
CMU's Linear Algebra Review
Math for Machine Learning
Immersive Linear Algebra
Probability Cheatsheet
The best linear algebra books
Markov Chains, Visually Explained
An Introduction to MCMC for Machine Learning
Eigenvectors, Eigenvalues, PCA, Covariance and Entropy
Markov Chain Monte Carlo (MCMC) & Machine Learning
Relearning Matrices as Linear Functions
Scratch: A Visual Programming Environment From MIT
Learn to Program (Ruby)
Grasshopper: A Mobile App to Learn Basic Coding (Javascript)
Intro to the Command Line
Additional command-line tutorial
A Vim Tutorial and Primer
Intro to Computer Science (CS50 @Harvard edX)
A Gentle Introduction to Machine Fundamentals
Teaching C
Theano
Keras
Lasagne
Learn Python the Hard Way
Google's Python Class
Udemy: Complete Python 3 Masterclass Journey
MIT: Introduction to Computer Science and Python Programming
David Beazley: Python Tutorials
CS231n: Python Numpy Tutorial
Pyret: A Python Learning Environment
Think Java: Interactive Web-based Dev Environment
Learn Java The Hard Way
Introduction to JShell
JShell in 5 Minutes
Java Resources
Java Ranch: A Community for Java Beginners
Intro to Programming in Java @Princeton
Head First Java
Java in a Nutshell
Java Programming for Complete Beginners in 250 Steps
examples
Quickstart
here
Stackoverflow
Math Stackexchange