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.txtand those specific to Tensorflow 2.17+ and Tensorflow 2.15.0). These include the following:- JupySQL extension enabling the
%sqlcell 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
-pyinclude 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-cudain 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.0use 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-keraspackage (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
aarch64platform (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
-cudaimage on macOS.