Docker

Docker, TensorFlow kurulumunu sistemin geri kalanından izole eden sanal ortamlar oluşturmak için konteynerleri kullanır. TensorFlow programları, kaynakları ana makineyle paylaşabilen (dizinlere erişim, GPU'yu kullanma, İnternet'e bağlanma vb.) bu sanal ortamda çalıştırılır. TensorFlow Docker görüntüleri her sürüm için test edilir.

Ana makinede yalnızca NVIDIA® GPU sürücüsünün gerekli olması nedeniyle Docker, Linux'ta TensorFlow GPU desteğini etkinleştirmenin en kolay yoludur ( NVIDIA® CUDA® Araç Takımının kurulmasına gerek yoktur).

TensorFlow Docker gereksinimleri

  1. Docker'ı yerel ana makinenize yükleyin.
  2. Linux'ta GPU desteği için NVIDIA Docker desteğini yükleyin .
    • Docker sürümünüzü docker -v ile not edin. 19.03'ten önceki sürümler nvidia-docker2 ve --runtime=nvidia bayrağını gerektirir. 19.03 dahil ve sonraki sürümlerde nvidia-container-toolkit paketini ve --gpus all bayrağını kullanacaksınız. Her iki seçenek de yukarıda bağlantısı verilen sayfada belgelenmiştir.

TensorFlow Docker görüntüsünü indirin

Resmi TensorFlow Docker görüntüleri tensorflow/tensorflow Docker Hub deposunda bulunur. Görüntü yayınları aşağıdaki format kullanılarak etiketlenir :

Etiket Tanım
latest TensorFlow CPU ikili görüntüsünün en son sürümü. Varsayılan.
nightly TensorFlow görüntüsünün gecelik yapıları. (Dengesiz.)
version TensorFlow ikili görüntüsünün sürümünü belirtin, örneğin: 2.8.3

Her temel etiketin, işlevsellik ekleyen veya değiştiren çeşitleri vardır:

Etiket Çeşitleri Tanım
-gpu tag GPU desteğiyle belirtilen etiket sürümü. ( Aşağıya bakın )
tag -jupyter Jupyter ile belirtilen etiket sürümü (TensorFlow eğitim not defterlerini içerir)

Aynı anda birden fazla çeşidi kullanabilirsiniz. Örneğin, aşağıdaki TensorFlow sürüm görüntülerini makinenize indirir:

docker pull tensorflow/tensorflow                     # latest stable release
docker pull tensorflow/tensorflow:devel-gpu           # nightly dev release w/ GPU support
docker pull tensorflow/tensorflow:latest-gpu-jupyter  # latest release w/ GPU support and Jupyter

TensorFlow Docker kapsayıcısını başlatın

TensorFlow ile yapılandırılmış bir kapsayıcıyı başlatmak için aşağıdaki komut formunu kullanın:

docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]

Ayrıntılar için docker çalıştırma referansına bakın.

Yalnızca CPU görüntülerinin kullanıldığı örnekler

latest etiketli görüntüyü kullanarak TensorFlow kurulumunu doğrulayalım. Docker, ilk çalıştırıldığında yeni bir TensorFlow görüntüsü indirir:

docker run -it --rm tensorflow/tensorflow \
   python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

Birkaç TensorFlow Docker tarifi daha gösterelim. TensorFlow ile yapılandırılmış bir kapsayıcı içinde bir bash kabuk oturumu başlatın:

docker run -it tensorflow/tensorflow bash

Kapsayıcının içinde bir python oturumu başlatabilir ve TensorFlow'u içe aktarabilirsiniz.

Ana makinede geliştirilen bir TensorFlow programını bir konteyner içinde çalıştırmak için, ana bilgisayar dizinini bağlayın ve konteynerin çalışma dizinini değiştirin ( -v hostDir:containerDir -w workDir ):

docker run -it --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow python ./script.py

Bir kapsayıcı içinde oluşturulan dosyalar ana bilgisayara sunulduğunda izin sorunları ortaya çıkabilir. Ana sistemdeki dosyaları düzenlemek genellikle en iyisidir.

TensorFlow'un gecelik yapısını kullanarak bir Jupyter Notebook sunucusu başlatın:

docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-jupyter

Talimatları izleyin ve URL'yi ana bilgisayar web tarayıcınızda açın: http://127.0.0.1:8888/?token=...

GPU desteği

Ana makine yalnızca NVIDIA® sürücüsünü gerektirdiğinden ( NVIDIA® CUDA® Araç Takımı gerekli değildir) Docker, TensorFlow'u GPU üzerinde çalıştırmanın en kolay yoludur.

Docker'a NVIDIA® GPU desteğini eklemek için Nvidia Container Toolkit'i yükleyin. nvidia-container-runtime yalnızca Linux'ta mevcuttur. Ayrıntılar için nvidia-container-runtime platform desteği SSS bölümüne bakın.

GPU'nun mevcut olup olmadığını kontrol edin:

lspci | grep -i nvidia

nvidia-docker kurulumunuzu doğrulayın:

docker run --gpus all --rm nvidia/cuda nvidia-smi

GPU özellikli görüntülerin kullanıldığı örnekler

GPU özellikli bir TensorFlow görüntüsünü indirin ve çalıştırın (birkaç dakika sürebilir):

docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \
   python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

GPU özellikli görüntünün ayarlanması biraz zaman alabilir. GPU tabanlı komut dosyalarını tekrar tekrar çalıştırıyorsanız, bir kapsayıcıyı yeniden kullanmak için docker exec kullanabilirsiniz.

Kapta bir bash kabuk oturumu başlatmak için en son TensorFlow GPU görüntüsünü kullanın:

docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash