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