Specific Deep Learning VM images are available to suit your choice of framework and processor. There are currently images supporting TensorFlow, PyTorch, and generic high-performance computing, with versions for both CPU-only and GPU-enabled workflows. For help understanding which set of images is right for your use case, see "Deciding on an image family," below.
Available images
The following table lists the currently available images.
| Framework | Processor | Image Name(s) |
|---|---|---|
| TensorFlow | GPU | tf-latest-gputf-VERSION-CUDA_VERSION (for example,
tf-1-12-cu100)
|
| CPU | tf-latest-cputf-VERSION-cpu (for example,
tf-1-12-cpu |
|
| TensorFlow 2.0 (experimental) | GPU | tf-latest-gpu-experimental
|
| CPU | tf-latest-cpu-experimental |
|
| PyTorch | GPU | pytorch-latest-cu100pytorch-VERSION-cu100 (for example,
pytorch-1-0-cu100)
|
| CPU | pytorch-latest-cpupytorch-VERSION-cpu (for example,
pytorch-1-0-cpu) |
|
| Base | GPU | common-cu100common-cu92common-cu91common-cu90
|
| CPU | common-cpu |
|
| Chainer | GPU | chainer-latest-cu92-experimentalchainer-VERSION-cu92-experimental (for example,
chainer-5-0-cu92-experimental)
|
| CPU | chainer-latest-cpu-experimentalchainer-VERSION-cpu-experimental (for example,
chainer-5-0-cpu-experimental) |
|
| XGBoost | GPU | xgboost-latest-cu92-experimentalxgboost-VERSION-cu92-experimental (e.g.
xgboost-0-81-cu92-experimental)
|
| CPU | xgboost-latest-cpu-experimentalxgboost-VERSION-cpu-experimental (e.g.
xgboost-0-81-cpu-experimental) |
|
| MXNet | GPU | mxnet-1-3-cu92-experimental |
| CPU | mxnet-1-3-cpu-experimental |
|
| RAPIDS | GPU | rapids-latest-gpu-experimental |
You can also use the gcloud compute images command on the command line to get
a list of all available images. For more information, see "Specifying an image
version," below.
Deciding on an image family
Deciding on which Deep Learning VM image family to use depends on your needs. The following list of image families is organized by framework type. Creating an instance by referencing an image family versus a specific image version ensures that you always get the latest version of that image.
TensorFlow
- Without a GPU:
- To use the latest TensorFlow version: Use
tf-latest-cpu. - To use a specific TensorFlow version:
tf-VERSION-cpu.
- To use the latest TensorFlow version: Use
- With a GPU:
- With the latest TensorFlow version:
- Use
tf-latest-gpu. - With CUDA v9.2: Use
tf-latest-gpu.
- Use
- With a specific TensorFlow version:
- Use
tf-VERSION-CUDA_VERSION.
- Use
- With the latest TensorFlow version:
TensorFlow 2.0 (experimental)
- Without a GPU, use
tf-latest-cpu-experimental. - With a GPU, use
tf-latest-gpu-experimental.
PyTorch
- Without a GPU:
- To use the latest PyTorch version: Use
pytorch-latest-cpu. - To use a specific PyTorch version: Use
pytorch-VERSION-cpu.
- To use the latest PyTorch version: Use
- With a GPU:
- To use the latest PyTorch version:
- Use
pytorch-latest-gpu. - With CUDA v9.1: Use
pytorch-latest-cu91. - With CUDA v9.2: Use
pytorch-latest-cu100.
- Use
- To use a specific PyTorch version:
- With CUDA v9.1: Use
pytorch-VERSION-cu91. - With CUDA v9.2: Use
pytorch-VERSION-cu100.
- With CUDA v9.1: Use
- To use the latest PyTorch version:
Other/Custom framework
- Without a GPU:
- Using CUDA v9.0: Use
common-cpu.
- Using CUDA v9.0: Use
- With a GPU:
- Using CUDA v9.0: Use
common-cu90. - Using CUDA v9.1: Use
common-cu91. - Using CUDA v9.2: Use
common-cu92.
- Using CUDA v9.0: Use
Chainer
Some Deep Learning VM images include experimental families. Chainer is the only one supported for now.
- With a GPU:
- To use the latest version: Use
chainer-latest-cu92-experimental. - To use a specific version: Use
chainer-VERSION-cu92-experimental.
- To use the latest version: Use
- Without a GPU:
- To use the latest version: Use
chainer-latest-cpu-experimental. - To use a specific version: Use
chainer-VERSION-cpu-experimental.
- To use the latest version: Use
Specifying an image version
You can reuse the same image, even if the latest image is newer. This can be useful, for instance, if you are trying to create a cluster and you want to ensure that any images that are used to create new instances are always the same. You should not use the name of the image family in this situation because, if the latest image is updated, you'll have different images on some instances in your cluster.
Instead, you can determine what the exact name of the image is, incorporating the version number, and then use that specific image to spawn new instances in your cluster.
To find out the exact name of the latest image, use the following gcloud
command at the command line, where image-family indicates the image
family of which you want to find out the latest version number:
gcloud compute images describe-from-family image-family \
--project deeplearning-platform-release
Look for the name field in the output and use the image name given there
when creating new instances.
To list all deep learning images, use the list command:
gcloud compute images list \
--project deeplearning-platform-release
Pre-installed packages
All images are based on Debian 9 "Stretch", and include:
- TensorFlow or PyTorch or Chainer or XGBoost
- CUDA 9.0 or 9.1 or 9.2 or 10.0 (GPU only; version depends on framework)
- CuDNN 7.3 (GPU only)
- NCCL 2.3.*
- Python (2.7 and 3.5) with the following packages:
- numpy
- scipy
- matplotlib
- pandas
- jupyter notebook/lab
- nltk
- Pillow
- scikit-image
- Opencv-python
- sklearn


