Builds and deploys customized Jupyter Lab Docker container images.
The images are currently built off of the jupyter/tensorflow-notebook containers from the (excellent) Docker Stacks project.
Customization includes adding the following:
- jupytext
- PyTorch
- Additional Python packages (see
common-requirements.txt
and those specific to Tensorflow 2.17+ and Tensorflow 2.15.0). These include the following:- JupySQL extension enabling the
%sql
cell magic. - DuckDB with Parquet
- Ontology Access Kit library
- Coolbox for genome track visualization
- JupySQL extension enabling the
- R kernel for Jupyter and a variety of commonly used R packages mirroring the recipe for the Docker Stacks R Notebook, plus the R packages for tensorflow, keras, and tf-probability.
For all additions, we follow the recipes from the Docker Stacks container definitions to the extent possible.
The following tags are available:
- The course year as a four-digit number (e.g.,
2024
) - Tags with suffix
-py
include only the Python additions in the list above, i.e., do not include the R kernel and packages. - Tags
-cuda
(and-cuda-py
) in the suffix include support for GPUs; they are built off of the CUDA-supporting Docker Stacks tensorflow image and thus include the CUDA libraries (PyTorch is installed with CUDA v12.1). Note that tags without-cuda
in the suffix do not have GPU support. - Tags with suffix
-tf2.17.0
(and taglatest
) use Tensorflow 2.17.0 (and thus Keras v3); those with suffix-tf2.15.0
use Tensorflow 2.15.0 (and thus Keras v2.15.0).- Note that code developed for Keras v2 may need to be migrated to run under Keras v3.
- Alternatively, use the (pre-installed)
tf-keras
package (which creates a Keras v2-compatible API intensorflow.keras
) under Tensorflow 2.16+, by issuing the following before importing Tensorflow:import os; os.environ["TF_USE_LEGACY_KERAS"]=”1”
For prefixes latest
and 2024
, the base image used is built with Tensorflow 2.17+, and thus Keras v3.x.
Currently the Python-only images (tags with -py
suffix) without GPU support (no -cuda
in the suffix) are built multi-platform (i.e., including the aarch64
/arm64
platform).
- Note that certain Python packages are unavailable in installable form for the
aarch64
platform (such as keras-nlp and tensorflow-text); if keras-nlp (which is installable onarm64
) is needed on an Apple Silicon machine, consider creating a local conda environment instead of using the container. - Docker on Apple Silicon Macs does not provide access to the Metal API, hence there is no benefit to the
-cuda
image on macOS.