Kaynaktan oluştur

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Kaynaktan bir TensorFlow pip paketi oluşturun ve bunu Ubuntu Linux ve macOS üzerine kurun. Talimatlar diğer sistemler için işe yarayabilir ancak yalnızca Ubuntu ve macOS için test edilmiş ve desteklenmiştir.

Linux ve macOS için kurulum

Geliştirme ortamınızı yapılandırmak için aşağıdaki oluşturma araçlarını kurun.

Python ve TensorFlow paket bağımlılıklarını kurun

ubuntu

sudo apt install python3-dev python3-pip

Mac os işletim sistemi

Xcode 9.2 veya sonraki sürümü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ı yükleyin (sanal ortam kullanılıyorsa, --user bağımsız değişkenini atlayın):

pip install -U --user pip numpy wheel packaging requests opt_einsum
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 Bazel yürütülebilir dosyası olarak bazel ekleyin.

Bazelisk mevcut değilse, Bazel'i manuel olarak kurabilirsiniz . TensorFlow'un .bazelversion dosyasından doğru Bazel sürümünü kurduğunuzdan emin olun.

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

macOS için GPU desteği yoktur .

TensorFlow'u bir GPU üzerinde ç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 şubesine gider. Oluşturmak için bir sürüm dalına da göz atabilirsiniz:

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

İsteğe bağlı: Yapıyı yapılandırın

TensorFlow derlemeleri, havuzun kök dizinindeki .bazelrc dosyası tarafından yapılandırılır. ./configure veya ./configure.py komut dosyaları, ortak ayarları yapmak için kullanılabilir.

Yapılandırmayı değiştirmeniz gerekirse, havuzun kök dizininden ./configure betiğini çalıştırın. Bu komut dosyası sizden TensorFlow bağımlılıklarının konumunu isteyecek ve ek yapı yapılandırma seçenekleri (örneğin derleyici bayrakları) isteyecektir. Ayrıntılar için Örnek oturum bölümüne bakın.

./configure

Ayrıca bu komut dosyasının bir python sürümü vardır, ./configure.py . Sanal bir 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ıştırması 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 ile cuDNN sürümlerini belirtin. Sisteminizde birden fazla CUDA veya cuDNN sürümü yüklüyse, 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, oluşturmadan önce bu yapılandırma adımının yeniden çalıştırılması gerekir.

optimizasyonlar

Derleme optimizasyon bayrakları için, varsayılan ( -march=native ) makinenizin CPU tipi için üretilen 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ış yapılandırmalar

bazel build komutuna eklenebilecek bazı önceden yapılandırılmış yapı yapılandırmaları vardır, örneğin:

  • --config=dbg ayıklama bilgisi ile derleyin. Ayrıntılar için CONTRIBUTING.md'ye bakın.
  • --config=mkl MKL-DNN için destek .
  • --config=monolithic —Çoğunlukla statik, yekpare yapı için yapılandırma.

Pip paketini oluşturun ve kurun

Pip paketi iki adımda oluşturulur. bazel build komutları, bir "paket oluşturucu" programı oluşturur. Daha sonra paketi oluşturmak için paket oluşturucuyu çalıştırırsınız.

Paket oluşturucuyu oluşturun

Yalnızca CPU desteğiyle TensorFlow 2.x paket oluşturucuyu 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şturucu oluşturmak için:

bazel build --config=cuda [--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.

TensorFlow'u kaynaktan oluşturmak çok fazla RAM kullanabilir. Sisteminizde bellek kısıtlıysa, Bazel'in RAM kullanımını şu şekilde sınırlayın: --local_ram_resources=2048 .

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

GCC 5 ve sonrası için, eski ABI ile uyumluluk şu şekilde oluşturulabilir: --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" . ABI uyumluluğu, resmi TensorFlow paketine göre oluşturulmuş özel operasyonların GCC 5 yerleşik paketiyle çalışmaya devam etmesini sağlar.

paketi oluştur

Bazel bazel build komutu, build_pip_package adlı 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 sürüm dalından derlemek için:

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

Master'dan derlemek için --nightly_flag kullanarak doğru bağımlılıkları elde edin:

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

Aynı kaynak ağaç altında hem CUDA hem de CUDA dışı yapılandırmalar oluşturmak mümkün olsa da, aynı kaynak ağaçta bu iki yapılandırma arasında geçiş yaparken bazel clean çalıştırmanız önerilir.

paketi kurun

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

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

Docker Linux derlemeleri

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 görüntü etiketlerinin listesi için TensorFlow Docker kılavuzuna gidin.

yalnızca 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ılavuzunu kontrol edin.

En son geliştirme görüntüsünü indirin ve pip paketini oluşturmak için kullanacağınız bir Docker konteyneri 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 kabın /mnt dizinine bağlar ve ana bilgisayar kullanıcısının bilgilerini bir çevresel değişken yoluyla kaba aktarır (izinleri ayarlamak için kullanılır; Docker bunu zorlaştırabilir).

Alternatif olarak, bir kapsayıcı içinde TensorFlow'un ana bilgisayar kopyasını oluşturmak için ana bilgisayar kaynak ağacını kabı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ı ayarlandığında, kabın sanal ortamında TensorFlow paketini oluşturun:

  1. İsteğe bağlı: Yapıyı yapılandırın—bu, kullanıcıdan yapı 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  # if necessary

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ı içine 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

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

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 desteğiyle bir pip paketi oluşturmak için 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, kabın sanal ortamında GPU desteğiyle TensorFlow paketini oluşturun:

./configure  # if necessary

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 yükleyip 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 versiyonu Derleyici Yapı araçları
tensorflow-2.11.0 3.7-3.10 GCC 9.3.1 Bazel 5.3.0
tensorflow-2.10.0 3.7-3.10 GCC 9.3.1 Bazel 5.0.0
tensorflow-2.9.0 3.7-3.10 GCC 9.3.1 Bazel 5.0.0
tensorflow-2.8.0 3.7-3.10 GCC 7.3.1 Bazel 4.2.1
tensorflow-2.7.0 3.7-3.9 GCC 7.3.1 Bazel 3.7.2
tensorflow-2.6.0 3.6-3.9 GCC 7.3.1 Bazel 3.7.2
tensorflow-2.5.0 3.6-3.9 GCC 7.3.1 Bazel 3.7.2
tensorflow-2.4.0 3.6-3.8 GCC 7.3.1 Bazel 3.1.0
tensorflow-2.3.0 3.5-3.8 GCC 7.3.1 Bazel 3.1.0
tensorflow-2.2.0 3.5-3.8 GCC 7.3.1 Bazel 2.0.0
tensorflow-2.1.0 2.7, 3.5-3.7 GCC 7.3.1 Bazel 0.27.1
tensorflow-2.0.0 2.7, 3.3-3.7 GCC 7.3.1 Bazel 0.26.1
tensorflow-1.15.0 2.7, 3.3-3.7 GCC 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 Bazel 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 versiyonu Derleyici Yapı araçları cuDNN CUDA
tensorflow-2.11.0 3.7-3.10 GCC 9.3.1 Bazel 5.3.0 8.1 11.2
tensorflow-2.10.0 3.7-3.10 GCC 9.3.1 Bazel 5.1.1 8.1 11.2
tensorflow-2.9.0 3.7-3.10 GCC 9.3.1 Bazel 5.0.0 8.1 11.2
tensorflow-2.8.0 3.7-3.10 GCC 7.3.1 Bazel 4.2.1 8.1 11.2
tensorflow-2.7.0 3.7-3.9 GCC 7.3.1 Bazel 3.7.2 8.1 11.2
tensorflow-2.6.0 3.6-3.9 GCC 7.3.1 Bazel 3.7.2 8.1 11.2
tensorflow-2.5.0 3.6-3.9 GCC 7.3.1 Bazel 3.7.2 8.1 11.2
tensorflow-2.4.0 3.6-3.8 GCC 7.3.1 Bazel 3.1.0 8.0 11.0
tensorflow-2.3.0 3.5-3.8 GCC 7.3.1 Bazel 3.1.0 7.6 10.1
tensorflow-2.2.0 3.5-3.8 GCC 7.3.1 Bazel 2.0.0 7.6 10.1
tensorflow-2.1.0 2.7, 3.5-3.7 GCC 7.3.1 Bazel 0.27.1 7.6 10.1
tensorflow-2.0.0 2.7, 3.3-3.7 GCC 7.3.1 Bazel 0.26.1 7.4 10.0
tensorflow_gpu-1.15.0 2.7, 3.3-3.7 GCC 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 Bazel 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 versiyonu Derleyici Yapı araçları
tensorflow-2.11.0 3.7-3.10 xcode 10.14'ten Clang Bazel 5.3.0
tensorflow-2.10.0 3.7-3.10 xcode 10.14'ten Clang Bazel 5.1.1
tensorflow-2.9.0 3.7-3.10 xcode 10.14'ten Clang Bazel 5.0.0
tensorflow-2.8.0 3.7-3.10 xcode 10.14'ten Clang Bazel 4.2.1
tensorflow-2.7.0 3.7-3.9 xcode 10.11'den Clang Bazel 3.7.2
tensorflow-2.6.0 3.6-3.9 xcode 10.11'den Clang Bazel 3.7.2
tensorflow-2.5.0 3.6-3.9 xcode 10.11'den Clang Bazel 3.7.2
tensorflow-2.4.0 3.6-3.8 xcode 10.3'ten Clang Bazel 3.1.0
tensorflow-2.3.0 3.5-3.8 xcode 10.1'den Clang Bazel 3.1.0
tensorflow-2.2.0 3.5-3.8 xcode 10.1'den Clang Bazel 2.0.0
tensorflow-2.1.0 2.7, 3.5-3.7 xcode 10.1'den Clang Bazel 0.27.1
tensorflow-2.0.0 2.7, 3.5-3.7 xcode 10.1'den Clang Bazel 0.27.1
tensorflow-2.0.0 2.7, 3.3-3.7 xcode 10.1'den Clang Bazel 0.26.1
tensorflow-1.15.0 2.7, 3.3-3.7 xcode 10.1'den Clang Bazel 0.26.1
tensorflow-1.14.0 2.7, 3.3-3.7 Xcode'dan Clang Bazel 0.24.1
tensorflow-1.13.1 2.7, 3.3-3.7 Xcode'dan Clang Bazel 0.19.2
tensorflow-1.12.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.15.0
tensorflow-1.11.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.15.0
tensorflow-1.10.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.15.0
tensorflow-1.9.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.11.0
tensorflow-1.8.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.10.1
tensorflow-1.7.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.10.1
tensorflow-1.6.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.8.1
tensorflow-1.5.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.8.1
tensorflow-1.4.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.5.4
tensorflow-1.3.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.4.5
tensorflow-1.2.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.4.5
tensorflow-1.1.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.4.2
tensorflow-1.0.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.4.2

GPU

Sürüm Python versiyonu Derleyici Yapı araçları cuDNN CUDA
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 Xcode'dan Clang Bazel 0.4.2 5.1 8