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:
- Derlemeyi yapılandır—bu, kullanıcıdan derleme yapılandırma sorularını yanıtlamasını ister.
- Pip paketini oluşturmak için kullanılan aracı oluşturun.
- Pip paketini oluşturmak için aracı çalıştırın.
- 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 |