Google I/O is a wrap! Catch up on TensorFlow sessions View sessions

Kaynaktan oluştur

Kaynaktan bir TensorFlow pip paketi oluşturun ve bunu Ubuntu Linux ve macOS'a yükleyin. Talimatlar diğer sistemler için işe yarayabilir, ancak yalnızca Ubuntu ve macOS için test edilir ve desteklenir.

Linux ve macOS için kurulum

Geliştirme ortamınızı yapılandırmak için aşağıdaki derleme araçlarını yükleyin.

Python ve TensorFlow paket bağımlılıklarını yükleyin

Ubuntu

sudo apt install python3-dev python3-pip

Mac os işletim sistemi

Xcode 9.2 veya üstünü gerektirir.

Homebrew paket yöneticisini kullanarak kurun:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
export PATH="/usr/local/opt/python/libexec/bin:$PATH"
# if you are on macOS 10.12 (Sierra) use export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
brew install python

TensorFlow pip paketi bağımlılıklarını kurun (sanal bir ortam kullanıyorsanız --user argümanını atlayın):

pip install -U --user pip numpy wheel packaging
pip install -U --user keras_preprocessing --no-deps

Bazel'i yükleyin

TensorFlow'u oluşturmak için Bazel'i kurmanız gerekecek. Bazelisk , Bazel'i kurmanın kolay bir yoludur ve TensorFlow için doğru Bazel sürümünü otomatik olarak indirir. Kullanım kolaylığı için, PATH dosyanızda yürütülebilir bazel olarak Bazelisk'i ekleyin.

Bazelisk mevcut değilse, Bazel'i manuel olarak yükleyebilirsiniz . Desteklenen bir Bazel sürümü yüklediğinizden emin olun: tensorflow/configure.py içinde belirtildiği gibi _TF_MIN_BAZEL_VERSION ile _TF_MAX_BAZEL_VERSION arasındaki herhangi bir sürüm.

GPU desteğini yükleyin (isteğe bağlı, yalnızca Linux)

macOS için GPU desteği yoktur .

TensorFlow'u bir GPU'da çalıştırmak için gereken sürücüleri ve ek yazılımları yüklemek için GPU destek kılavuzunu okuyun.

TensorFlow kaynak kodunu indirin

TensorFlow deposunu klonlamak için Git'i kullanın:

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

Depo, varsayılan olarak master geliştirme dalına geçer. Ayrıca, oluşturmak için bir yayın dalına da göz atabilirsiniz:

git checkout branch_name  # r2.2, r2.3, etc.

Yapıyı yapılandır

TensorFlow kaynak ağacınızın kökündeki ./configure dosyasını çalıştırarak sistem yapınızı yapılandırın. Bu komut dosyası sizden TensorFlow bağımlılıklarının konumunu sorar ve ek yapı yapılandırma seçenekleri (örneğin derleyici bayrakları) ister.

./configure

Bir sanal ortam kullanılıyorsa, python configure.py ortam içindeki yollara öncelik verirken ./configure ortam dışındaki yollara öncelik verir. Her iki durumda da varsayılanı değiştirebilirsiniz.

Örnek oturum

Aşağıda ./configure betiğinin örnek bir çalışması gösterilmektedir (oturumunuz farklı olabilir):

Yapılandırma seçenekleri

GPU desteği

GPU desteği için yapılandırma sırasında cuda cuda=Y ayarlayın ve CUDA ve cuDNN sürümlerini belirtin. Sisteminizde kurulu birden çok CUDA veya cuDNN sürümü varsa, varsayılana güvenmek yerine sürümü açıkça ayarlayın. ./configure , sisteminizin CUDA kitaplıklarına sembolik bağlantılar oluşturur; bu nedenle, CUDA kitaplık yollarınızı güncellerseniz, bu yapılandırma adımı oluşturmadan önce yeniden çalıştırılmalıdır.

optimizasyonlar

Derleme optimizasyon bayrakları için varsayılan ( -march=native ) makinenizin CPU tipi için oluşturulan kodu optimize eder. Ancak, farklı bir CPU türü için TensorFlow oluşturuyorsanız, daha spesifik bir optimizasyon bayrağı düşünün. Örnekler için GCC kılavuzuna bakın.

Önceden yapılandırılmış konfigürasyonlar

bazel build komutuna eklenebilecek bazı önceden yapılandırılmış yapı konfigürasyonları mevcuttur, örneğin:

  • --config=dbg ayıklama bilgileriyle derleyin. Ayrıntılar için CONTRIBUTING.md'ye bakın.
  • --config=mkl MKL-DNN desteği.
  • --config=monolithic —Çoğunlukla statik, monolitik bir yapı için yapılandırma.
  • --config=v1 —2.x yerine TensorFlow 1.x'i oluşturun.

pip paketini oluşturun

TensorFlow 2.x

Bazel'i kurun ve yalnızca CPU desteğiyle TensorFlow 2.x paketini oluşturmak için bazel build kullanın:

bazel build [--config=option] //tensorflow/tools/pip_package:build_pip_package

GPU desteği

GPU destekli bir TensorFlow paket oluşturucusu oluşturmak için:

bazel build --config=cuda [--config=option] //tensorflow/tools/pip_package:build_pip_package

TensorFlow 1.x

Daha eski bir TensorFlow 1.x paketi oluşturmak için --config=v1 seçeneğini kullanın:

bazel build --config=v1 [--config=option] //tensorflow/tools/pip_package:build_pip_package

Bazel yapı seçenekleri

Yapı seçenekleri için Bazel komut satırı başvurusuna bakın.

Kaynaktan TensorFlow oluşturmak çok fazla RAM kullanabilir. Sisteminizin belleği kısıtlıysa, Bazel'in RAM kullanımını şununla sınırlayın: --local_ram_resources=2048 .

Resmi TensorFlow paketleri , manylinux2010 paket standardıyla uyumlu bir GCC 7.3 araç zinciri ile oluşturulmuştur.

GCC 5 ve sonraki sürümler için, eski ABI ile uyumluluk aşağıdakiler kullanılarak oluşturulabilir: --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" . ABI uyumluluğu, resmi TensorFlow paketine karşı oluşturulan özel operasyonların GCC 5 yerleşik paketiyle çalışmaya devam etmesini sağlar.

paketi oluştur

Bazel bazel build komutu, build_pip_package adında bir yürütülebilir dosya oluşturur; bu, pip paketini oluşturan programdır. /tmp/tensorflow_pkg dizininde bir .whl paketi oluşturmak için yürütülebilir dosyayı aşağıda gösterildiği gibi çalıştırın.

Bir yayın dalından derlemek için:

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

Master'dan derlemek için doğru bağımlılıkları elde etmek için --nightly_flag kullanın:

./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg

Aynı kaynak ağacı altında hem CUDA hem de CUDA olmayan konfigürasyonlar oluşturmak mümkün olsa da, aynı kaynak ağacında bu iki konfigürasyon arasında geçiş yaparken bazel clean çalıştırılması önerilir.

paketi kurun

Oluşturulan .whl dosyasının dosya adı, TensorFlow sürümüne ve platformunuza bağlıdır. Paketi kurmak için pip install kullanın, örneğin:

pip install /tmp/tensorflow_pkg/tensorflow-version-tags.whl

Docker Linux yapıları

TensorFlow'un Docker geliştirme görüntüleri, kaynaktan Linux paketleri oluşturmak için bir ortam kurmanın kolay bir yoludur. Bu görüntüler, TensorFlow'u oluşturmak için gereken kaynak kodunu ve bağımlılıkları zaten içerir. Kurulum talimatları ve mevcut resim etiketlerinin listesi için TensorFlow Docker kılavuzuna gidin.

sadece CPU

Aşağıdaki örnek, en son TensorFlow kaynak kodundan yalnızca CPU içeren bir paket oluşturmak için :devel görüntüsünü kullanır. Kullanılabilir TensorFlow -devel etiketleri için Docker kılavuzuna bakın.

En son geliştirme görüntüsünü indirin ve pip paketini oluşturmak için kullanacağınız bir Docker kapsayıcısını başlatın:

docker pull tensorflow/tensorflow:devel
docker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel bash

git pull  # within the container, download the latest source code

Yukarıdaki docker run komutu, kaynak ağacın kökü olan /tensorflow_src dizininde bir kabuk başlatır. Ana bilgisayarın geçerli dizinini kapsayıcının /mnt dizinine bağlar ve ana bilgisayar kullanıcısının bilgilerini bir çevresel değişken aracılığıyla kapsayıcıya iletir (izinleri ayarlamak için kullanılır—Docker bunu zorlaştırabilir).

Alternatif olarak, bir kap içinde TensorFlow'un bir ana bilgisayar kopyasını oluşturmak için ana bilgisayar kaynak ağacını kapsayıcının /tensorflow dizinine bağlayın:

docker run -it -w /tensorflow -v /path/to/tensorflow:/tensorflow -v $PWD:/mnt \
    -e HOST_PERMS="\\((id -u):\\)(id -g)" tensorflow/tensorflow:devel bash

Kaynak ağacı kurulumuyla, kapsayıcının sanal ortamında TensorFlow paketini oluşturun:

  1. Derlemeyi yapılandır—bu, kullanıcıdan derleme yapılandırma sorularını yanıtlamasını ister.
  2. Pip paketini oluşturmak için kullanılan aracı oluşturun.
  3. Pip paketini oluşturmak için aracı çalıştırın.
  4. Dosyanın sahiplik izinlerini kapsayıcı dışında ayarlayın.
./configure  # answer prompts or use defaults

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /mnt  # create package

chown $HOST_PERMS /mnt/tensorflow-version-tags.whl

Paketi kapsayıcıya kurun ve doğrulayın:

pip uninstall tensorflow  # remove current version

pip install /mnt/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(tf.__version__)"

Ana makinenizde, TensorFlow pip paketi geçerli dizindedir (ana bilgisayar kullanıcı izinleriyle): ./tensorflow- version - tags .whl

GPU desteği

Ana makine yalnızca NVIDIA® sürücüsü gerektirdiğinden ( NVIDIA® CUDA® Toolkit'in yüklenmesi gerekmez) Docker, TensorFlow için GPU desteği oluşturmanın en kolay yoludur. Nvidia - docker'ı kurmak için GPU destek kılavuzuna ve TensorFlow Docker kılavuzuna bakın (yalnızca Linux).

Aşağıdaki örnek, TensorFlow :devel-gpu görüntüsünü indirir ve GPU etkin kapsayıcıyı çalıştırmak için nvidia-docker docker'ı kullanır. Bu geliştirme görüntüsü, GPU destekli bir pip paketi oluşturacak şekilde yapılandırılmıştır:

docker pull tensorflow/tensorflow:devel-gpu
docker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \
    tensorflow/tensorflow:devel-gpu bash
git pull  # within the container, download the latest source code

Ardından, kapsayıcının sanal ortamında GPU destekli TensorFlow paketini oluşturun:

./configure  # answer prompts or use defaults

bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /mnt  # create package

chown $HOST_PERMS /mnt/tensorflow-version-tags.whl

Paketi kapsayıcıya kurun ve doğrulayın ve bir GPU olup olmadığını kontrol edin:

pip uninstall tensorflow  # remove current version

pip install /mnt/tensorflow-version-tags.whl
cd /tmp  # don't import from source directory
python -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"

Test edilmiş yapı yapılandırmaları

Linux

İşlemci

sürüm Python sürümü Derleyici Yapı araçları
tensorflow-2.9.0 3.7-3.10 KİK 9.3.1 Bazel 5.0.0
tensorflow-2.8.0 3.7-3.10 KİK 7.3.1 Bazel 4.2.1
tensorflow-2.7.0 3.7-3.9 KİK 7.3.1 Bazel 3.7.2
tensorflow-2.6.0 3.6-3.9 KİK 7.3.1 Bazel 3.7.2
tensorflow-2.5.0 3.6-3.9 KİK 7.3.1 Bazel 3.7.2
tensorflow-2.4.0 3.6-3.8 KİK 7.3.1 Bazel 3.1.0
tensorflow-2.3.0 3.5-3.8 KİK 7.3.1 Bazel 3.1.0
tensorflow-2.2.0 3.5-3.8 KİK 7.3.1 Bazel 2.0.0
tensorflow-2.1.0 2.7, 3.5-3.7 KİK 7.3.1 Bazel 0.27.1
tensorflow-2.0.0 2.7, 3.3-3.7 KİK 7.3.1 Bazel 0.26.1
tensorflow-1.15.0 2.7, 3.3-3.7 KİK 7.3.1 Bazel 0.26.1
tensorflow-1.14.0 2.7, 3.3-3.7 GCC 4.8 Bazel 0.24.1
tensorflow-1.13.1 2.7, 3.3-3.7 GCC 4.8 Bazel 0.19.2
tensorflow-1.12.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0
tensorflow-1.11.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0
tensorflow-1.10.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0
tensorflow-1.9.0 2.7, 3.3-3.6 GCC 4.8 Temel 0.11.0
tensorflow-1.8.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.10.0
tensorflow-1.7.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.10.0
tensorflow-1.6.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.9.0
tensorflow-1.5.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.8.0
tensorflow-1.4.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.5.4
tensorflow-1.3.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5
tensorflow-1.2.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5
tensorflow-1.1.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2
tensorflow-1.0.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2

GPU

sürüm Python sürümü Derleyici Yapı araçları cuDNN CUDA
tensorflow-2.9.0 3.7-3.10 KİK 9.3.1 Bazel 5.0.0 8.1 11.2
tensorflow-2.8.0 3.7-3.10 KİK 7.3.1 Bazel 4.2.1 8.1 11.2
tensorflow-2.7.0 3.7-3.9 KİK 7.3.1 Bazel 3.7.2 8.1 11.2
tensorflow-2.6.0 3.6-3.9 KİK 7.3.1 Bazel 3.7.2 8.1 11.2
tensorflow-2.5.0 3.6-3.9 KİK 7.3.1 Bazel 3.7.2 8.1 11.2
tensorflow-2.4.0 3.6-3.8 KİK 7.3.1 Bazel 3.1.0 8.0 11.0
tensorflow-2.3.0 3.5-3.8 KİK 7.3.1 Bazel 3.1.0 7.6 10.1
tensorflow-2.2.0 3.5-3.8 KİK 7.3.1 Bazel 2.0.0 7.6 10.1
tensorflow-2.1.0 2.7, 3.5-3.7 KİK 7.3.1 Bazel 0.27.1 7.6 10.1
tensorflow-2.0.0 2.7, 3.3-3.7 KİK 7.3.1 Bazel 0.26.1 7.4 10.0
tensorflow_gpu-1.15.0 2.7, 3.3-3.7 KİK 7.3.1 Bazel 0.26.1 7.4 10.0
tensorflow_gpu-1.14.0 2.7, 3.3-3.7 GCC 4.8 Bazel 0.24.1 7.4 10.0
tensorflow_gpu-1.13.1 2.7, 3.3-3.7 GCC 4.8 Bazel 0.19.2 7.4 10.0
tensorflow_gpu-1.12.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.11.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7, 3.3-3.6 GCC 4.8 Temel 0.11.0 7 9
tensorflow_gpu-1.8.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.10.0 7 9
tensorflow_gpu-1.7.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.6.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.9.0 7 9
tensorflow_gpu-1.5.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.8.0 7 9
tensorflow_gpu-1.4.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.5.4 6 8
tensorflow_gpu-1.3.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5 6 8
tensorflow_gpu-1.2.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8

Mac os işletim sistemi

İşlemci

sürüm Python sürümü Derleyici Yapı araçları
tensorflow-2.9.0 3.7-3.10 xcode 10.14'ten klan Bazel 5.0.0
tensorflow-2.8.0 3.7-3.10 xcode 10.14'ten klan Bazel 4.2.1
tensorflow-2.7.0 3.7-3.9 xcode 10.11'den klan Bazel 3.7.2
tensorflow-2.6.0 3.6-3.9 xcode 10.11'den klan Bazel 3.7.2
tensorflow-2.5.0 3.6-3.9 xcode 10.11'den klan Bazel 3.7.2
tensorflow-2.4.0 3.6-3.8 xcode 10.3'ten klan Bazel 3.1.0
tensorflow-2.3.0 3.5-3.8 xcode 10.1'den klan Bazel 3.1.0
tensorflow-2.2.0 3.5-3.8 xcode 10.1'den klan Bazel 2.0.0
tensorflow-2.1.0 2.7, 3.5-3.7 xcode 10.1'den klan Bazel 0.27.1
tensorflow-2.0.0 2.7, 3.5-3.7 xcode 10.1'den klan Bazel 0.27.1
tensorflow-2.0.0 2.7, 3.3-3.7 xcode 10.1'den klan Bazel 0.26.1
tensorflow-1.15.0 2.7, 3.3-3.7 xcode 10.1'den klan Bazel 0.26.1
tensorflow-1.14.0 2.7, 3.3-3.7 xcode'dan klan Bazel 0.24.1
tensorflow-1.13.1 2.7, 3.3-3.7 xcode'dan klan Bazel 0.19.2
tensorflow-1.12.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.15.0
tensorflow-1.11.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.15.0
tensorflow-1.10.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.15.0
tensorflow-1.9.0 2.7, 3.3-3.6 xcode'dan klan Temel 0.11.0
tensorflow-1.8.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.10.1
tensorflow-1.7.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.10.1
tensorflow-1.6.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.8.1
tensorflow-1.5.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.8.1
tensorflow-1.4.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.5.4
tensorflow-1.3.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.4.5
tensorflow-1.2.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.4.5
tensorflow-1.1.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.4.2
tensorflow-1.0.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.4.2

GPU

sürüm Python sürümü Derleyici Yapı araçları cuDNN CUDA
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 xcode'dan klan Bazel 0.4.2 5.1 8