Google is committed to advancing racial equity for Black communities. See how.

از منبع بسازید

یک بسته pip TensorFlow از منبع بسازید و آن را در اوبونتو لینوکس و macOS نصب کنید. اگرچه این دستورالعمل ها ممکن است برای سیستم های دیگر کار کنند ، اما فقط برای اوبونتو و macOS تست و پشتیبانی می شود.

راه اندازی برای Linux و macOS

برای پیکربندی محیط توسعه خود ، ابزارهای ساخت زیر را نصب کنید.

وابستگی های بسته Python و TensorFlow را نصب کنید

اوبونتو

sudo apt install python3-dev python3-pip

سیستم عامل مک

به Xcode 9.2 یا بالاتر نیاز دارد.

با استفاده از مدیر بسته Homebrew نصب کنید:

/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

وابستگی های بسته pip TensorFlow را نصب کنید (اگر از محیط مجازی استفاده می کنید ، استدلال --user را حذف --user ):

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

بازل را نصب کنید

برای ساخت TensorFlow ، باید Bazel را نصب کنید. Bazelisk یک روش آسان برای نصب Bazel است و به طور خودکار نسخه صحیح Bazel را برای TensorFlow بارگیری می کند. برای سهولت در استفاده، اضافه کردن Bazelisk به عنوان bazel اجرایی در خود PATH .

اگر Bazelisk در دسترس نیست ، می توانید Bazel را به صورت دستی نصب کنید . حتماً نسخه _TF_MIN_BAZEL_VERSION پشتیبانی شده را نصب کنید: هر نسخه بین _TF_MIN_BAZEL_VERSION و _TF_MAX_BAZEL_VERSION که در tensorflow/configure.py مشخص شده tensorflow/configure.py .

پشتیبانی GPU را نصب کنید (اختیاری ، فقط در Linux)

پشتیبانی از GPU برای macOS وجود ندارد .

برای نصب درایورها و نرم افزارهای اضافی مورد نیاز برای اجرای TensorFlow در GPU ، راهنمای پشتیبانی GPU را بخوانید.

کد منبع TensorFlow را بارگیری کنید

برای شبیه سازی مخزن TensorFlow از Git استفاده کنید :

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

پیش فروش به طور پیش فرض به شاخه توسعه master . همچنین می توانید برای ساخت یک شعبه آزاد کننده پرداخت کنید:

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

پیکربندی ساخت

با اجرای ./configure در ریشه درخت منبع TensorFlow ، ساخت سیستم خود را پیکربندی کنید. این اسکریپت مکان وابستگی های TensorFlow را از شما می خواهد و گزینه های اضافی پیکربندی ساخت را می طلبد (به عنوان مثال پرچم های کامپایلر).

./configure

اگر از یک محیط مجازی استفاده می کنید ، python configure.py مسیرهای داخل محیط را اولویت بندی می کند ، در حالی که ./configure مسیرهای خارج از محیط را اولویت بندی می کند. در هر دو حالت می توانید پیش فرض را تغییر دهید.

جلسه نمونه

در زیر نمونه ای از اسکریپت ./configure (جلسه شما ممکن است متفاوت باشد) را نشان می دهد:

گزینه های پیکربندی

پشتیبانی از پردازنده گرافیکی

برای پشتیبانی از GPU ، در حین پیکربندی cuda=Y تنظیم کرده و نسخه های CUDA و cuDNN را مشخص کنید. اگر سیستم شما چندین نسخه از CUDA یا cuDNN را نصب کرده است ، به صراحت نسخه را تنظیم کنید به جای اینکه به پیش فرض اعتماد کنید. ./configure پیوندهای نمادینی به کتابخانه های CUDA سیستم شما ایجاد می کند - بنابراین اگر مسیرهای کتابخانه CUDA خود را به روز کنید ، این مرحله پیکربندی باید قبل از ساخت دوباره اجرا شود.

بهینه سازی ها

برای پرچم های بهینه سازی تلفیقی ، پیش فرض ( -march=native ) کد تولید شده را برای نوع پردازنده دستگاه شما بهینه می کند. با این حال ، اگر TensorFlow را برای نوع CPU دیگری ساختید ، یک پرچم بهینه سازی خاص تر را در نظر بگیرید. برای مثال به کتابچه راهنمای شورای همکاری خلیج فارس مراجعه کنید.

پیکربندی های از پیش پیکربندی شده

برخی از پیکربندی های ساخت از پیش تنظیم شده در دسترس هستند که می توانند به دستور bazel build اضافه شوند ، به عنوان مثال:

  • --config=dbg دارای اطلاعات اشکال زدایی. برای جزئیات به CONTRIBUTING.md مراجعه کنید.
  • --config=mkl پشتیبانی از Intel® MKL-DNN .
  • --config=monolithic پیکربندی برای --config=monolithic بیشتر ساکن ، یکپارچه.
  • --config=v1 ساخت TensorFlow 1.x به جای 2.x.

بسته pip را بسازید

TensorFlow 2.x

برای ایجاد بسته TensorFlow 2.x با پشتیبانی از CPU ، Bazel را نصب کنید و از bazel build استفاده کنید:

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

پشتیبانی از پردازنده گرافیکی

برای ساخت سازنده بسته TensorFlow با پشتیبانی GPU:

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

TensorFlow 1.x

برای ساخت یک بسته قدیمی تر TensorFlow 1.x ، از گزینه --config=v1 کنید:

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

گزینه های ساخت بازل

برای گزینه های ساخت به مرجع خط فرمان Bazel مراجعه کنید.

ساخت TensorFlow از منبع می تواند از RAM زیادی استفاده کند. اگر سیستم شما محدود به حافظه است ، میزان RAM RAM --local_ram_resources=2048 با استفاده از: --local_ram_resources=2048 .

بسته های رسمی TensorFlow با یک ابزار ابزار GCC 7.3 ساخته شده است که مطابق با استاندارد بسته manylinux2010 است.

برای GCC 5 و بالاتر ، سازگاری با ABI قدیمی تر می تواند با استفاده از: --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" . سازگاری ABI تضمین می کند که عملکردهای سفارشی ساخته شده در برابر بسته رسمی TensorFlow با بسته ساخته شده GCC 5 همچنان کار می کنند.

بسته را بسازید

bazel build فرمان ایجاد یک نام اجرایی build_pip_package -این برنامه ای است که ایجاد شده است pip بسته. اجرای فایل اجرایی به عنوان زیر نشان داده شده برای ساخت یک .whl بسته در /tmp/tensorflow_pkg دایرکتوری.

برای ساخت از یک شاخه آزاد:

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

برای ساختن از master ، از --nightly_flag استفاده کنید تا وابستگی های مناسب را بدست آورید:

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

اگرچه می توان هر دو پیکربندی CUDA و غیر CUDA را در زیر یک درخت منشأ ساخت ، توصیه می شود هنگام تعویض بین این دو پیکربندی در یک درخت منبع ، bazel clean اجرا شود.

بسته را نصب کنید

نام پرونده تولید شده. .whl به نسخه TensorFlow و سیستم عامل شما بستگی دارد. برای نصب بسته از pip install استفاده pip install ، به عنوان مثال:

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

Docker Linux ایجاد می کند

تصاویر توسعه TensorFlow's Docker راهی آسان برای تنظیم محیط ساخت بسته های لینوکس از مبدا است. این تصاویر از قبل حاوی کد منبع و وابستگی های مورد نیاز برای ساخت TensorFlow هستند. برای نصب به راهنمای TensorFlow Docker و لیست برچسب های تصویر موجود مراجعه کنید .

فقط CPU

مثال زیر با استفاده از :devel image برای ساخت یک بسته فقط پردازنده از جدیدترین کد منبع TensorFlow استفاده می کند. برای برچسب های موجود -devel راهنمای Docker -devel کنید.

آخرین تصویر توسعه را بارگیری کرده و یک ظرف Docker که برای ساخت بسته pip از آن استفاده خواهیم کرد ، شروع کنید:

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

دستور docker run /tensorflow_src پوسته ای را در شاخه /tensorflow_src — ریشه درخت منبع شروع می کند. این فهرست فعلی میزبان را در پوشه /mnt سوار می کند و اطلاعات کاربر میزبان را از طریق یک متغیر محیطی به کانتینر منتقل می کند (برای تنظیم مجوزها استفاده می شود - Docker می تواند این کار را مشکل کند).

متناوباً ، برای ساختن یک نسخه میزبان از TensorFlow در یک ظرف ، درخت منبع میزبان را در پوشه کانتینر /tensorflow :

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

با تنظیم درخت منبع ، بسته TensorFlow را در محیط مجازی ظرف بسازید:

  1. پیکربندی ساخت - این کاربر را وادار می کند تا به سالات پیکربندی ساخت پاسخ دهد.
  2. ابزاری را که برای ایجاد بسته pip استفاده شده است بسازید .
  3. ابزار را برای ایجاد بسته pip اجرا کنید .
  4. مجوزهای مالکیت پرونده را برای خارج از محفظه تنظیم کنید.
./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

بسته را در ظرف نصب و تأیید کنید:

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__)"

در دستگاه میزبان شما ، بسته pip TensorFlow در فهرست فعلی وجود دارد (با مجوزهای کاربر میزبان): ./tensorflow- version - tags .whl

پشتیبانی از پردازنده گرافیکی

Docker ساده ترین راه برای ایجاد پشتیبانی از GPU برای TensorFlow است زیرا دستگاه میزبان فقط به درایور NVIDIA® احتیاج دارد ( نیازی به نصب جعبه ابزار NVIDIA doesn't CUDA® نیست). برای راه اندازی nvidia-docker (فقط Linux) به راهنمای پشتیبانی GPU و راهنمای TensorFlow Docker مراجعه کنید.

مثال زیر تصویر TensorFlow را بارگیری می کند :devel-gpu و از nvidia-docker برای اجرای محتویات GPU استفاده می کند. این تصویر توسعه برای ساخت یک بسته pip با پشتیبانی GPU پیکربندی شده است:

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

سپس ، در محیط مجازی کانتینر ، بسته TensorFlow را با پشتیبانی GPU بسازید:

./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

بسته را در ظرف نصب و تأیید کنید و GPU را بررسی کنید:

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')))"

تنظیمات ساخت آزمایش شده

لینوکس

پردازنده

نسخه نسخه پایتون کامپایلر ابزار بسازید
tensorflow-2.5.0 3.6-3.9 GCC 7.3.1 بازل 3.7.2
tensorflow-2.4.0 3.6-3.8 GCC 7.3.1 بازل 3.1.0
tensorflow-2.3.0 3.5-3.8 GCC 7.3.1 بازل 3.1.0
tensorflow-2.2.0 3.5-3.8 GCC 7.3.1 بازل 2.0.0
tensorflow-2.1.0 2.7 ، 3.5-3.7 GCC 7.3.1 بازل 0.27.1
tensorflow-2.0.0 2.7 ، 3.3-3.7 GCC 7.3.1 بازل 0.26.1
tensorflow-1.15.0 2.7 ، 3.3-3.7 GCC 7.3.1 بازل 0.26.1
tensorflow-1.14.0 2.7 ، 3.3-3.7 GCC 4.8 بازل 0.24.1
tensorflow-1.13.1 2.7 ، 3.3-3.7 GCC 4.8 بازل 0.19.2
tensorflow-1.12.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.15.0
tensorflow-1.11.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.15.0
tensorflow-1.10.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.15.0
tensorflow-1.9.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.11.0
tensorflow-1.8.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.10.0
tensorflow-1.7.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.10.0
tensorflow-1.6.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.9.0
tensorflow-1.5.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.8.0
tensorflow-1.4.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.5.4
tensorflow-1.3.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.4.5
tensorflow-1.2.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.4.5
tensorflow-1.1.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.4.2
tensorflow-1.0.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.4.2

پردازنده گرافیکی

نسخه نسخه پایتون کامپایلر ابزار بسازید cuDNN CUDA
tensorflow-2.5.0 3.6-3.9 GCC 7.3.1 بازل 3.7.2 8.1 11.2
tensorflow-2.4.0 3.6-3.8 GCC 7.3.1 بازل 3.1.0 8.0 11.0
tensorflow-2.3.0 3.5-3.8 GCC 7.3.1 بازل 3.1.0 7.6 10.1
tensorflow-2.2.0 3.5-3.8 GCC 7.3.1 بازل 2.0.0 7.6 10.1
tensorflow-2.1.0 2.7 ، 3.5-3.7 GCC 7.3.1 بازل 0.27.1 7.6 10.1
tensorflow-2.0.0 2.7 ، 3.3-3.7 GCC 7.3.1 بازل 0.26.1 7.4 10.0
tensorflow_gpu-1.15.0 2.7 ، 3.3-3.7 GCC 7.3.1 بازل 0.26.1 7.4 10.0
tensorflow_gpu-1.14.0 2.7 ، 3.3-3.7 GCC 4.8 بازل 0.24.1 7.4 10.0
tensorflow_gpu-1.13.1 2.7 ، 3.3-3.7 GCC 4.8 بازل 0.19.2 7.4 10.0
tensorflow_gpu-1.12.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.15.0 7 9
tensorflow_gpu-1.11.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.11.0 7 9
tensorflow_gpu-1.8.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.10.0 7 9
tensorflow_gpu-1.7.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.9.0 7 9
tensorflow_gpu-1.6.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.9.0 7 9
tensorflow_gpu-1.5.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.8.0 7 9
tensorflow_gpu-1.4.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.5.4 6 8
tensorflow_gpu-1.3.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.4.5 6 8
tensorflow_gpu-1.2.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7 ، 3.3-3.6 GCC 4.8 بازل 0.4.2 5.1 8

سیستم عامل مک

پردازنده

نسخه نسخه پایتون کامپایلر ابزار بسازید
tensorflow-2.5.0 3.6-3.9 صدای بلند از xcode 10.11 بازل 3.7.2
tensorflow-2.4.0 3.6-3.8 صدای بلند از xcode 10.3 بازل 3.1.0
tensorflow-2.3.0 3.5-3.8 صدای بلند از xcode 10.1 بازل 3.1.0
tensorflow-2.2.0 3.5-3.8 صدای بلند از xcode 10.1 بازل 2.0.0
tensorflow-2.1.0 2.7 ، 3.5-3.7 صدای بلند از xcode 10.1 بازل 0.27.1
tensorflow-2.0.0 2.7 ، 3.5-3.7 صدای بلند از xcode 10.1 بازل 0.27.1
tensorflow-2.0.0 2.7 ، 3.3-3.7 صدای بلند از xcode 10.1 بازل 0.26.1
tensorflow-1.15.0 2.7 ، 3.3-3.7 صدای بلند از xcode 10.1 بازل 0.26.1
tensorflow-1.14.0 2.7 ، 3.3-3.7 صدای عامیانه از xcode بازل 0.24.1
tensorflow-1.13.1 2.7 ، 3.3-3.7 صدای عامیانه از xcode بازل 0.19.2
tensorflow-1.12.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.15.0
tensorflow-1.11.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.15.0
tensorflow-1.10.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.15.0
tensorflow-1.9.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.11.0
tensorflow-1.8.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.10.1
tensorflow-1.7.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.10.1
tensorflow-1.6.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.8.1
tensorflow-1.5.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.8.1
tensorflow-1.4.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.5.4
tensorflow-1.3.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.4.5
tensorflow-1.2.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.4.5
tensorflow-1.1.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.4.2
tensorflow-1.0.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.4.2

پردازنده گرافیکی

نسخه نسخه پایتون کامپایلر ابزار بسازید cuDNN CUDA
tensorflow_gpu-1.1.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7 ، 3.3-3.6 صدای عامیانه از xcode بازل 0.4.2 5.1 8