Google 致力于为黑人社区推动种族平等。查看具体举措
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

स्रोत से बनाएँ

स्रोत से एक TensorFlow पाइप पैकेज बनाएँ और इसे Ubuntu Linux और macOS पर स्थापित करें। हालांकि निर्देश अन्य प्रणालियों के लिए काम कर सकते हैं, यह केवल उबंटू और मैकओएस के लिए परीक्षण और समर्थित है।

लिनक्स और मैकओएस के लिए सेटअप

अपने विकास के वातावरण को कॉन्फ़िगर करने के लिए निम्न बिल्ड टूल स्थापित करें।

अजगर और 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

TensorFlow पाइप पैकेज निर्भरता स्थापित करें (यदि एक आभासी वातावरण का उपयोग कर, - --user तर्क को छोड़ --user ):

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

Bazel स्थापित करें

TensorFlow का निर्माण करने के लिए, आपको Bazel को स्थापित करना होगा। Bazelisk Bazel स्थापित करने के लिए एक आसान तरीका है और स्वचालित रूप से TensorFlow के लिए सही Bazel संस्करण डाउनलोड करता है। उपयोग में आसानी के लिए, अपने PATH में bazel निष्पादन योग्य के रूप में bazel जोड़ें।

यदि Bazelisk उपलब्ध नहीं है, तो आप मैन्युअल रूप से Bazel स्थापित कर सकते हैं। एक समर्थित Bazel संस्करण स्थापित करना सुनिश्चित करें: _TF_MIN_BAZEL_VERSION और _TF_MAX_BAZEL_VERSION बीच कोई भी संस्करण tensorflow/configure.py में निर्दिष्ट है।

GPU समर्थन स्थापित करें (वैकल्पिक, केवल Linux)

MacOS के लिए कोई GPU सपोर्ट नहीं है

ड्राइवरों को स्थापित करने के लिए GPU समर्थन गाइड पढ़ें और GPU पर TensorFlow चलाने के लिए आवश्यक अतिरिक्त सॉफ़्टवेयर।

TensorFlow स्रोत कोड डाउनलोड करें

TensorFlow रिपॉजिटरी को क्लोन करने के लिए Git का उपयोग करें:

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

रेपो master विकास शाखा में चूक करता है। आप निर्माण करने के लिए एक रिलीज़ शाखा की जाँच भी कर सकते हैं:

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

बिल्ड को कॉन्फ़िगर करें

अपने TensorFlow source ट्री के रूट पर ./configure को चलाकर अपने सिस्टम बिल्ड को कॉन्फ़िगर करें। यह स्क्रिप्ट आपको TensorFlow निर्भरता के स्थान के लिए संकेत देती है और अतिरिक्त बिल्ड कॉन्फ़िगरेशन विकल्प (संकलक झंडे, उदाहरण के लिए) के लिए पूछती है।

./configure

यदि वर्चुअल वातावरण का उपयोग करते हुए, python configure.py ./configure पर्यावरण के भीतर पथों को प्राथमिकता देता है, जबकि ./configure वातावरण के बाहर पथों को प्राथमिकता देता है। दोनों ही मामलों में आप डिफ़ॉल्ट को बदल सकते हैं।

नमूना सत्र

निम्नलिखित ./configure स्क्रिप्ट का नमूना नमूना दिखाता है (आपका सत्र भिन्न हो सकता है):

कॉन्फ़िगरेशन विकल्प

GPU समर्थन

GPU समर्थन के लिए , कॉन्फ़िगरेशन के दौरान cuda=Y सेट करें और CUDA और cuDNN के संस्करणों को निर्दिष्ट करें। यदि आपके सिस्टम में CUDA या cuDNN के कई संस्करण स्थापित हैं, तो डिफ़ॉल्ट रूप से निर्भर होने के बजाय संस्करण को स्पष्ट रूप से सेट करें। ./configure आपके सिस्टम के CUDA पुस्तकालयों के लिए प्रतीकात्मक लिंक बनाता है - इसलिए यदि आप अपने CUDA लाइब्रेरी पथ को अपडेट करते हैं, तो यह कॉन्फ़िगरेशन चरण बिल्डिंग से पहले फिर से चलाया जाना चाहिए।

अनुकूलन

संकलन अनुकूलन झंडे के लिए, डिफ़ॉल्ट ( -march=native ) आपकी मशीन के सीपीयू प्रकार के लिए उत्पन्न कोड का अनुकूलन करता है। हालांकि, अगर एक अलग CPU प्रकार के लिए TensorFlow का निर्माण, एक अधिक विशिष्ट अनुकूलन ध्वज पर विचार करें। उदाहरण के लिए जीसीसी मैनुअल देखें।

अपुष्ट विन्यास

कुछ पूर्व-निर्मित बिल्ड bazel build उपलब्ध हैं जिन्हें bazel build कमांड में जोड़ा जा सकता है, उदाहरण के लिए:

  • --config=mkl —Support Intel® MKL-DNN के लिए
  • --config=monolithic —संपादित करें ज्यादातर स्थिर, अखंड निर्माण के लिए संरचना।
  • --config=v1 –बिल्डेंस टेन्सरफ्लो 1.x 2.x के बजाय।

पाइप पैकेज बनाएँ

TensorFlow 2.x

Bazel इंस्टॉल करें और TensorFlow 2.x पैकेज को केवल- CPU समर्थन के साथ बनाने के लिए bazel build का उपयोग करें :

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

GPU समर्थन

GPU समर्थन के साथ एक TensorFlow पैकेज बिल्डर बनाने के लिए:

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 बिल्ड विकल्प

बिल्ड विकल्पों के लिए Bazel कमांड-लाइन संदर्भ देखें।

स्रोत से TensorFlow का निर्माण बहुत सारे RAM का उपयोग कर सकता है। यदि आपका सिस्टम मेमोरी-विवश है, तो Bazel की RAM का उपयोग इसके साथ सीमित करें: --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 पैकेज बनाता है। /tmp/tensorflow_pkg निर्देशिका में .whl पैकेज बनाने के लिए नीचे दिखाए अनुसार निष्पादन योग्य चलाएँ।

रिलीज शाखा से निर्माण करने के लिए:

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

मास्टर से निर्माण करने के लिए, सही निर्भरता प्राप्त करने के लिए --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

डोकर लिनक्स बनाता है

TensorFlow की डॉकर विकास छवियां स्रोत से लिनक्स पैकेज बनाने के लिए एक वातावरण स्थापित करने का एक आसान तरीका है। इन छवियों में पहले से ही TensorFlow बनाने के लिए आवश्यक स्रोत कोड और निर्भरताएं हैं। स्थापना के लिए TensorFlow Docker गाइड और उपलब्ध छवि टैग की सूची देखें

सीपीयू केवल

निम्न उदाहरण का उपयोग करता है :devel नवीनतम TensorFlow स्रोत कोड से CPU-केवल पैकेज बनाने के लिए :devel छवि। उपलब्ध TensorFlow -devel टैग के लिए डॉकर गाइड देखें।

नवीनतम विकास छवि डाउनलोड करें और डॉक कंटेनर शुरू करें जिसका उपयोग हम पाइप पैकेज बनाने के लिए करेंगे:

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 डायरेक्टरी में एक शेल शुरू होता है - सोर्स ट्री की जड़। यह कंटेनर के /mnt निर्देशिका में होस्ट की वर्तमान निर्देशिका को /mnt , और एक पर्यावरण चर के माध्यम से कंटेनर को होस्ट उपयोगकर्ता की जानकारी को पारित करता है (अनुमतियों को सेट करने के लिए उपयोग किया जाता है - डॉकर यह मुश्किल बना सकता है)।

वैकल्पिक रूप से, एक कंटेनर के भीतर 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. पाइप पैकेज बनाने के लिए उपयोग किए जाने वाले टूल का निर्माण करें।
  3. पाइप पैकेज बनाने के लिए उपकरण चलाएँ।
  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__)"

आपकी होस्ट मशीन पर, TensorFlow pip package वर्तमान निर्देशिका में है (होस्ट उपयोगकर्ता अनुमतियों के साथ): ./tensorflow- version - tags .whl

GPU समर्थन

Docker TensorFlow के लिए GPU समर्थन बनाने का सबसे आसान तरीका है क्योंकि होस्ट मशीन को केवल NVIDIA® ड्राइवर ( NVIDIA® CUDA® टूलकिट स्थापित करने की आवश्यकता नहीं है)। देखें GPU समर्थन गाइड और TensorFlow डोकर गाइड स्थापित करने के लिए NVIDIA-डोकर (Linux)।

निम्न उदाहरण TensorFlow डाउनलोड करता है :devel-gpu छवि और उपयोग करता है nvidia-docker GPU सक्षम कंटेनर को चलाने के लिए। यह विकास छवि 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

फिर, कंटेनर के आभासी वातावरण में, GPU समर्थन के साथ TensorFlow पैकेज का निर्माण करें:

./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.experimental.list_physical_devices('GPU')))"

परीक्षणित निर्माण कॉन्फ़िगरेशन

लिनक्स

सी पी यू

संस्करण पायथन संस्करण संकलक उपकरण बनाएँ
tensorflow-2.4.0 3.6-3.8 जीसीसी 7.3.1 बाजेल 3.1.0
tensorflow-2.3.0 3.5-3.8 जीसीसी 7.3.1 बाजेल 3.1.0
tensorflow-2.2.0 3.5-3.8 जीसीसी 7.3.1 बाजल 2.0.0
tensorflow-2.1.0 २. 3.5, ३.५-३..7 जीसीसी 7.3.1 बाजेल 0.27.1
tensorflow-2.0.0 २. 3.3, ३.३-३..7 जीसीसी 7.3.1 बाजेल 0.26.1
tensorflow-1.15.0 २. 3.3, ३.३-३..7 जीसीसी 7.3.1 बाजेल 0.26.1
tensorflow-1.14.0 २.।, ३.३-३..7 जीसीसी 4.8 बाजेल 0.24.1
tensorflow-1.13.1 २. 3.3, ३.३-३..7 जीसीसी 4.8 बाजेल 0.19.2
tensorflow-1.12.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.15.0
tensorflow-1.11.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.15.0
tensorflow-1.10.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.15.0
tensorflow-1.9.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.11.0
tensorflow-1.8.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.10.0
tensorflow-1.7.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.10.0
tensorflow-1.6.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.9.0
tensorflow-1.5.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.8.0
tensorflow-1.4.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.5.4
tensorflow-1.3.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.4.5
tensorflow-1.2.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.4.5
tensorflow-1.1.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.4.2
tensorflow-1.0.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.4.2

GPU

संस्करण पायथन संस्करण संकलक उपकरण बनाएँ cuDNN CUDA
tensorflow-2.4.0 3.6-3.8 जीसीसी 7.3.1 बाजेल 3.1.0 8.0 11.0
tensorflow-2.3.0 3.5-3.8 जीसीसी 7.3.1 बाजेल 3.1.0 7.6 10.1
tensorflow-2.2.0 3.5-3.8 जीसीसी 7.3.1 बाजल 2.0.0 7.6 10.1
tensorflow-2.1.0 २. 3.5, ३.५-३..7 जीसीसी 7.3.1 बाजेल 0.27.1 7.6 10.1
tensorflow-2.0.0 २. 3.3, ३.३-३..7 जीसीसी 7.3.1 बाजेल 0.26.1 7.4 10.0
tensorflow_gpu-1.15.0 २. 3.3, ३.३-३..7 जीसीसी 7.3.1 बाजेल 0.26.1 7.4 10.0
tensorflow_gpu-1.14.0 २. 3.3, ३.३-३..7 जीसीसी 4.8 बाजेल 0.24.1 7.4 10.0
tensorflow_gpu-1.13.1 २. 3.3, ३.३-३..7 जीसीसी 4.8 बाजेल 0.19.2 7.4 10.0
tensorflow_gpu-1.12.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.15.0 7 9
tensorflow_gpu-1.11.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.15.0 7 9
tensorflow_gpu-1.10.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.15.0 7 9
tensorflow_gpu-1.9.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.11.0 7 9
tensorflow_gpu-1.8.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.10.0 7 9
tensorflow_gpu-1.7.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.9.0 7 9
tensorflow_gpu-1.6.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.9.0 7 9
tensorflow_gpu-1.5.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.8.0 7 9
tensorflow_gpu-1.4.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.5.4 6 8
tensorflow_gpu-1.3.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.4.5 6 8
tensorflow_gpu-1.2.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.4.5 5.1 8
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 जीसीसी 4.8 बाजेल 0.4.2 5.1 8

मैक ओ एस

सी पी यू

संस्करण पायथन संस्करण संकलक उपकरण बनाएँ
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 २. 3.5, ३.५-३..7 Xcode 10.1 से क्लेंग बाजेल 0.27.1
tensorflow-2.0.0 २. 3.5, ३.५-३..7 Xcode 10.1 से क्लेंग बाजेल 0.27.1
tensorflow-2.0.0 २.।, ३.३-३..7 Xcode 10.1 से क्लेंग बाजेल 0.26.1
tensorflow-1.15.0 २. 3.3, ३.३-३..7 Xcode 10.1 से क्लेंग बाजेल 0.26.1
tensorflow-1.14.0 २.।, ३.३-३..7 एक्सकोड से क्लैंग बाजेल 0.24.1
tensorflow-1.13.1 २. 3.3, ३.३-३..7 एक्सकोड से क्लैंग बाजेल 0.19.2
tensorflow-1.12.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.15.0
tensorflow-1.11.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.15.0
tensorflow-1.10.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.15.0
tensorflow-1.9.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.11.0
tensorflow-1.8.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.10.1
tensorflow-1.7.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.10.1
tensorflow-1.6.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.8.1
tensorflow-1.5.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.8.1
tensorflow-1.4.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.5.4
tensorflow-1.3.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.4.5
tensorflow-1.2.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.4.5
tensorflow-1.1.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.4.2
tensorflow-1.0.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.4.2

GPU

संस्करण पायथन संस्करण संकलक उपकरण बनाएँ cuDNN CUDA
tensorflow_gpu-1.1.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.4.2 5.1 8
tensorflow_gpu-1.0.0 2.7, 3.3-3.6 एक्सकोड से क्लैंग बाजेल 0.4.2 5.1 8