Liman işçisi

Docker, bir TensorFlow kurulumunu sistemin geri kalanından izole eden sanal ortamlar oluşturmak için kaplar kullanır. TensorFlow programları, ana makinesiyle kaynakları paylaşabilen (dizinlere erişim, GPU'yu kullanma, İnternete 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.

Docker, ana makinede yalnızca NVIDIA® GPU sürücüsü gerektiğinden ( NVIDIA® CUDA® Toolkit'in yüklenmesi gerekmez) Linux'ta TensorFlow GPU desteğini etkinleştirmenin en kolay yoludur.

TensorFlow Docker gereksinimleri

  1. Docker'ı yerel ana makinenize kurun .
  2. Linux'ta GPU desteği için NVIDIA Docker desteğini kurun .
    • Docker sürümünüzü docker -v ile not alın. 19.03'ten önceki sürümler, nvidia-docker2 ve --runtime=nvidia bayrağını gerektirir. 19.03'ü içeren 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.

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

Resmi TensorFlow Docker görüntüleri , tensorflow/tensorflow Docker Hub deposunda bulunur. Görüntü izinleri aşağıdaki biçim 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 varyantları vardır:

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

Birden çok varyantı aynı anda kullanabilirsiniz. Örneğin, aşağıdaki TensorFlow sürüm görüntüleri makinenize indirilir:

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

Bir TensorFlow Docker konteyneri başlatın

TensorFlow ile yapılandırılmış bir kapsayıcı 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ülerini kullanan örnekler

latest etiketlenmiş görüntüyü kullanarak TensorFlow kurulumunu doğrulayalım. Docker, ilk kez ç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])))"

Biraz daha TensorFlow Docker tarifi gösterelim. TensorFlow ile yapılandırılmış bir kap içinde bir bash kabuğu oturumu başlatın:

docker run -it tensorflow/tensorflow bash

Konteyner içinde bir python oturumu başlatabilir ve TensorFlow'u içe aktarabilirsiniz.

Ana makinede geliştirilen bir TensorFlow programını bir kap içinde çalıştırmak için, ana bilgisayar dizinini bağlayın ve kabın ç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 maruz kaldığında 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® Toolkit gerekli değildir), Docker, TensorFlow'u bir GPU üzerinde çalıştırmanın en kolay yoludur.

Docker'a NVIDIA® GPU desteği eklemek için Nvidia Container Toolkit'i kurun. nvidia-container-runtime yalnızca Linux için kullanılabilir. Ayrıntılar için nvidia-container-runtime platformu desteği SSS bölümüne bakın.

Bir GPU 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üleri kullanan ö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ı betikleri art arda çalıştırıyorsanız, bir kapsayıcıyı yeniden kullanmak için docker exec kullanabilirsiniz.

Kapsayıcıda bir bash kabuğu 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