NERSCPowering Scientific Discovery Since 1974

Deep Learning and General Machine Learning

NERSC supports several software frameworks for machine learning and deep learning (and it is growing!). Most of these are available via the anaconda installation on both Edison and Cori, and is the easiest way to access and use these frameworks. This contains:

  • Tensorflow
  • XGBoost
  • Scikit-Learn
  • Theano
  • Torch


 As well as the version available under the anaconda distribution, we also provide an up-to-date (vanilla) version in a separate tensorflow module, as well as a version that has been optimized to run very efficiently on Intel architectures. Please see Using TensorFlow at NERSC for more details.


We also provide Spark as a separate module


Caffe is available in a separate module - simply use  module load caffe/master

deeplearning module

We also provide a "deeplearning" module, which contains all of these python-based frameworks (and additionally Lasagne) - however, we recommend you use the versions available in anaconda as that provides a seamless integration with all other provided python packages. 

The specific frameworks included in deeplearning module are:

To use the python based deep learning frameworks based on Python 2.7, on Cori or Edison enter the following command in the shell:

module load deeplearning

Python 3.5 support for the deep learning module is available on Cori with:

module load deeplearning/3.5


Then you can proceed to write python scripts that use any of the above libraries as they are documented.

To deploy any of these tools on the batch system, please follow the running python scripts instructions

The deeplearning environment contains other common tools you might need such as (please contact us if there are other common tools you would like):

  • numpy
  • scipy
  • matplotlib
  • pandas
  • ipython / jupyter
  • h5py
  • pytables
  • mpi4py (only on compute nodes and you must set the environment variable USE_DL_MPI)


To use the deeplearning module in your ipython notebook:

1. Make sure you have module loaded deeplearning (from Cori) recently to get the most recent kernel

2. If you are not using TensorFlow, log on to and use the environment by changing your kernel to "deeplearning" like so:

ipython dl kernel2

 Do not select "Python [deeplearning] ". Select "deeplearning"

3. If you would like to use TensorFlow, please use

Please be aware that is an EXPERIMENTAL service meaning that it may be unavailable or become unreliable without notice, and that users are cautioned not to make plans to use it as an integral part of their research activities. We are working on developing a Jupyter on Cori as a service, but be aware it is a WORK IN PROGRESS





TensorFlow at NERSC

We offer a number of different versions of Tensorflow at NERSC. Depending on the level of compute performance you require, you can chose between the Tensorflow version (1.1) available in the standard anaconda distribution of python we have installed on our systems, or a specific version of Tensorflow that is more up-to-date (see "module avail tensorflow"). Note that we recommend using the versions of Tensorflow that have been compiled to include specific optimizations contributed by the Intel… Read More »

Hyperparameter Optimization

The process of looking for the most optimal hyperparameters for a machine learning algorithm is called hyperparameter optimization. NERSC supports several tools for hyperparameter optimization. Read More »

Deep Networks for HEP

This page provides example code, datasets and recipes for running HEP Physics analyses using deep neural networks on Cori. The current scripts were those used for the CNN classification and timing studies reported at this ACAT talk. Datasets These contain simulated data with an ATLAS-like detector. Data is available from . A README is provided in the directory. Currently data binned into 64x64 images is provided. Unbined data will… Read More »