Choosing an Image

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-gpu
tf-VERSION-CUDA_VERSION (for example, tf-1-11-cu100)
CPU tf-latest-cpu
tf-VERSION-cpu (for example, tf-1-10-cpu
PyTorch GPU pytorch-latest-cu92
pytorch-VERSION-cu92 (for example, pytorch-0-4-cu92)
CPU pytorch-latest-cpu
pytorch-VERSION-cpu (for example, pytorch-0-4-cpu)
PyTorch 1.0RC GPU pytorch-1-0-cu92-experimental
CPU pytorch-1-0-cpu-experimental
Base GPU common-cu100
common-cu92
common-cu91
common-cu90
CPU common-cpu
Chainer GPU chainer-latest-cu92-experimental
chainer-VERSION-cu92-experimental (for example, chainer-4-4-cu92-experimental)
CPU chainer-latest-cpu-experimental
chainer-VERSION-cpu-experimental (for example, chainer-4-4-cpu-experimental)
XGBoost GPU xgboost-latest-cu92-experimental
xgboost-VERSION-cu92-experimental (e.g. xgboost-0-80-cu92-experimental)
CPU xgboost-latest-cpu-experimental
xgboost-VERSION-cpu-experimental (e.g. xgboost-0-80-cpu-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.
  • With a GPU:
    • With the latest TensorFlow version:
      • Use tf-latest-gpu.
      • With CUDA v9.2: Use tf-latest-gpu.
    • With a specific TensorFlow version:
      • Use tf-VERSION-CUDA_VERSION.

PyTorch

  • Without a GPU:
    • To use the latest PyTorch version: Use pytorch-latest-cpu.
    • To use a specific PyTorch version: Use pytorch-VERSION-cpu.
  • 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-cu92.
    • To use a specific PyTorch version:
      • With CUDA v9.1: Use pytorch-VERSION-cu91.
      • With CUDA v9.2: Use pytorch-VERSION-cu92.

Other/Custom framework

  • Without a GPU:
    • Using CUDA v9.0: Use common-cpu.
  • With a GPU:
    • Using CUDA v9.0: Use common-cu90.
    • Using CUDA v9.1: Use common-cu91.
    • Using CUDA v9.2: Use common-cu92.

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.
  • Without a GPU:
    • To use the latest version: Use chainer-latest-cpu-experimental.
    • To use a specific version: Use chainer-VERSION-cpu-experimental.

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
Was this page helpful? Let us know how we did:

Send feedback about...

Deep Learning VM