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
- Docker'ı yerel ana makinenize kurun .
- 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.
- Docker sürümünüzü
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