स्रोत से एक TensorFlow पाइप पैकेज बनाएं और इसे Ubuntu Linux और macOS पर इंस्टॉल करें। हालाँकि निर्देश अन्य प्रणालियों के लिए काम कर सकते हैं, लेकिन इसका परीक्षण और समर्थन केवल उबंटू और macOS के लिए किया जाता है।
Linux और macOS के लिए सेटअप
अपने विकास परिवेश को कॉन्फ़िगर करने के लिए निम्नलिखित बिल्ड टूल इंस्टॉल करें।
Python और TensorFlow पैकेज निर्भरताएँ स्थापित करें
उबंटू
sudo apt install python3-dev python3-pip
मैक ओएस
Xcode 9.2 या बाद के संस्करण की आवश्यकता है।
Homebrew पैकेज मैनेजर का उपयोग करके इंस्टॉल करें:
brew install python
TensorFlow पाइप पैकेज निर्भरताएँ स्थापित करें (यदि वर्चुअल वातावरण का उपयोग कर रहे हैं, तो --user
तर्क को छोड़ दें):
pip install -U --user pip
बेज़ेल स्थापित करें
TensorFlow बनाने के लिए, आपको Bagel इंस्टॉल करना होगा। बेज़ेलिस्क, बेज़ेल को स्थापित करने का एक आसान तरीका है और स्वचालित रूप से टेन्सरफ्लो के लिए सही बेज़ेल संस्करण डाउनलोड करता है। उपयोग में आसानी के लिए, अपने PATH
में bazel
निष्पादन योग्य के रूप में बेज़ेलिस्क जोड़ें।
यदि बेज़ेलिस्क उपलब्ध नहीं है, तो आप बेज़ेल को मैन्युअल रूप से इंस्टॉल कर सकते हैं। सुनिश्चित करें कि TensorFlow की .bazenversion फ़ाइल से सही Bazel संस्करण स्थापित किया जाए।
क्लैंग स्थापित करें (अनुशंसित, केवल लिनक्स)
क्लैंग एक सी/सी++/ऑब्जेक्टिव-सी कंपाइलर है जो एलएलवीएम पर आधारित सी++ में संकलित है। यह TensorFlow 2.13 से प्रारंभ करके TensorFlow बनाने के लिए डिफ़ॉल्ट कंपाइलर है। वर्तमान समर्थित संस्करण एलएलवीएम/क्लैंग 17 है।
एलएलवीएम डेबियन/उबंटू रात्रिकालीन पैकेज लिनक्स पर मैन्युअल इंस्टॉलेशन के लिए एक स्वचालित इंस्टॉलेशन स्क्रिप्ट और पैकेज प्रदान करते हैं। सुनिश्चित करें कि यदि आप मैन्युअल रूप से अपने पैकेज स्रोतों में एलएलवीएम उपयुक्त रिपॉजिटरी जोड़ते हैं तो आप निम्न कमांड चलाएँ:
sudo apt-get update && sudo apt-get install -y llvm-17 clang-17
अब इस मामले में /usr/lib/llvm-17/bin/clang
क्लैंग का वास्तविक मार्ग है।
वैकल्पिक रूप से, आप पूर्व-निर्मित क्लैंग + एलएलवीएम 17 को डाउनलोड और अनपैक कर सकते हैं।
नीचे उन चरणों का एक उदाहरण दिया गया है जिन्हें आप डेबियन/उबंटू ऑपरेटिंग सिस्टम पर डाउनलोड किए गए क्लैंग + एलएलवीएम 17 बायनेरिज़ को सेट करने के लिए उठा सकते हैं:
वांछित गंतव्य निर्देशिका में बदलें:
cd <desired directory>
एक संग्रह फ़ाइल लोड करें और निकालें...(आपके आर्किटेक्चर के लिए उपयुक्त):
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.2/clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
tar -xvf clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
निकाली गई सामग्री (निर्देशिका और फ़ाइलें) को
/usr
पर कॉपी करें (आपको sudo अनुमतियों की आवश्यकता हो सकती है, और सही निर्देशिका वितरण के अनुसार भिन्न हो सकती है)। यह क्लैंग और एलएलवीएम को प्रभावी ढंग से स्थापित करता है, और इसे पथ में जोड़ता है। आपको कुछ भी बदलना नहीं चाहिए, जब तक कि आपके पास पिछला इंस्टॉलेशन न हो, ऐसी स्थिति में आपको फ़ाइलें बदल देनी चाहिए:cp -r clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04/* /usr
प्राप्त क्लैंग + एलएलवीएम 17 बायनेरिज़ संस्करण की जाँच करें:
clang --version
अब वह
/usr/bin/clang
आपके नए क्लैंग का वास्तविक पथ है। आप इस पथ पर./configure
स्क्रिप्ट चला सकते हैं या मैन्युअल रूप से पर्यावरण चरCC
औरBAZEL_COMPILER
सेट कर सकते हैं।
GPU समर्थन स्थापित करें (वैकल्पिक, केवल Linux)
MacOS के लिए कोई GPU समर्थन नहीं है।
GPU पर TensorFlow चलाने के लिए आवश्यक ड्राइवर और अतिरिक्त सॉफ़्टवेयर स्थापित करने के लिए GPU समर्थन मार्गदर्शिका पढ़ें।
TensorFlow स्रोत कोड डाउनलोड करें
TensorFlow रिपॉजिटरी को क्लोन करने के लिए Git का उपयोग करें:
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
रेपो master
डेवलपमेंट शाखा में डिफ़ॉल्ट होता है। आप निर्माण के लिए एक रिलीज़ शाखा भी देख सकते हैं:
git checkout branch_name # r2.2, r2.3, etc.
बिल्ड कॉन्फ़िगर करें
TensorFlow बिल्ड को रिपॉजिटरी की रूट डायरेक्टरी में .bazelrc
फ़ाइल द्वारा कॉन्फ़िगर किया गया है। सामान्य सेटिंग्स को समायोजित करने के लिए ./configure
या ./configure.py
स्क्रिप्ट का उपयोग किया जा सकता है।
कृपया रिपॉजिटरी की रूट डायरेक्टरी से ./configure
स्क्रिप्ट चलाएँ। यह स्क्रिप्ट आपको TensorFlow निर्भरता के स्थान के लिए संकेत देगी और अतिरिक्त बिल्ड कॉन्फ़िगरेशन विकल्प (उदाहरण के लिए कंपाइलर फ़्लैग) मांगेगी। विवरण के लिए नमूना सत्र अनुभाग देखें।
./configure
इस स्क्रिप्ट का एक पायथन संस्करण भी है, ./configure.py
। यदि वर्चुअल वातावरण का उपयोग कर रहे हैं, python configure.py
पर्यावरण के भीतर पथों को प्राथमिकता देता है, जबकि ./configure
पर्यावरण के बाहर के पथों को प्राथमिकता देता है। दोनों ही मामलों में आप डिफ़ॉल्ट बदल सकते हैं.
नमूना सत्र
निम्नलिखित ./configure
स्क्रिप्ट का एक नमूना रन दिखाता है (आपका सत्र भिन्न हो सकता है):
कॉन्फ़िगरेशन विकल्प
जीपीयू समर्थन
v.2.18.0 से
GPU समर्थन के लिए, कॉन्फ़िगरेशन के दौरान cuda=Y
सेट करें और यदि आवश्यक हो तो CUDA और cuDNN के संस्करण निर्दिष्ट करें। बेज़ेल स्वचालित रूप से CUDA और CUDNN पैकेज डाउनलोड करेगा या यदि आवश्यक हो तो स्थानीय फ़ाइल सिस्टम पर CUDA/CUDNN/NCCL पुनर्वितरण को इंगित करेगा।
v.2.18.0 से पहले
GPU समर्थन के लिए, कॉन्फ़िगरेशन के दौरान cuda=Y
सेट करें और CUDA और cuDNN के संस्करण निर्दिष्ट करें। यदि आपके सिस्टम में CUDA या cuDNN के कई संस्करण स्थापित हैं, तो डिफ़ॉल्ट पर निर्भर रहने के बजाय स्पष्ट रूप से संस्करण सेट करें। ./configure
आपके सिस्टम की CUDA लाइब्रेरी के लिए प्रतीकात्मक लिंक बनाता है - इसलिए यदि आप अपने CUDA लाइब्रेरी पथ को अपडेट करते हैं, तो निर्माण से पहले इस कॉन्फ़िगरेशन चरण को फिर से चलाया जाना चाहिए।
अनुकूलन
संकलन अनुकूलन फ़्लैग के लिए, डिफ़ॉल्ट ( -march=native
) आपके मशीन के सीपीयू प्रकार के लिए जेनरेट किए गए कोड को अनुकूलित करता है। हालाँकि, यदि किसी भिन्न CPU प्रकार के लिए TensorFlow का निर्माण किया जा रहा है, तो अधिक विशिष्ट अनुकूलन ध्वज पर विचार करें। उदाहरण के लिए जीसीसी मैनुअल की जाँच करें।
पूर्व-कॉन्फ़िगर कॉन्फ़िगरेशन
कुछ पूर्व-कॉन्फ़िगर बिल्ड कॉन्फ़िगरेशन उपलब्ध हैं जिन्हें bazel build
कमांड में जोड़ा जा सकता है, उदाहरण के लिए:
-
--config=dbg
डिबग जानकारी के साथ निर्माण करें। विवरण के लिए CONTRIBUTING.md देखें। -
--config=mkl
Intel® MKL-DNN के लिए समर्थन। -
--config=monolithic
—ज्यादातर स्थिर, मोनोलिथिक निर्माण के लिए कॉन्फ़िगरेशन।
पिप पैकेज बनाएं और इंस्टॉल करें
बेज़ेल बिल्ड विकल्प
बिल्ड विकल्पों के लिए बेज़ेल कमांड-लाइन संदर्भ देखें।
स्रोत से TensorFlow बनाने में बहुत अधिक RAM का उपयोग हो सकता है। यदि आपका सिस्टम मेमोरी-बाधित है, तो बेज़ेल के रैम उपयोग को सीमित करें: --local_ram_resources=2048
।
आधिकारिक TensorFlow पैकेज क्लैंग टूलचेन के साथ बनाए गए हैं जो मैनीलिनक्स2014 पैकेज मानक का अनुपालन करते हैं।
पैकेज बनाएं
पाइप पैकेज बनाने के लिए, आपको --repo_env=WHEEL_NAME
ध्वज निर्दिष्ट करना होगा। दिए गए नाम के आधार पर, पैकेज बनाया जाएगा, उदाहरण के लिए:
टेंसरफ्लो सीपीयू पैकेज बनाने के लिए:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
टेंसरफ़्लो GPU पैकेज बनाने के लिए:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel
टेंसरफ्लो टीपीयू पैकेज बनाने के लिए:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_tpu --config=tpu
रात्रिकालीन पैकेज बनाने के लिए, tensorflow
के बजाय tf_nightly
सेट करें, उदाहरण के लिए सीपीयू रात्रिकालीन पैकेज बनाने के लिए:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu
परिणामस्वरूप, उत्पन्न पहिया स्थित होगा
bazel-bin/tensorflow/tools/pip_package/wheel_house/
पैकेज स्थापित करें
जेनरेट की गई .whl
फ़ाइल का फ़ाइल नाम TensorFlow संस्करण और आपके प्लेटफ़ॉर्म पर निर्भर करता है। उदाहरण के लिए, पैकेज को स्थापित करने के लिए pip install
उपयोग करें:
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
डॉकर लिनक्स बनाता है
TensorFlow की डॉकर विकास छवियां स्रोत से लिनक्स पैकेज बनाने के लिए एक वातावरण स्थापित करने का एक आसान तरीका है। इन छवियों में पहले से ही TensorFlow बनाने के लिए आवश्यक स्रोत कोड और निर्भरताएं शामिल हैं। इंस्टॉलेशन निर्देशों और उपलब्ध छवि टैग की सूची के लिए TensorFlow Docker गाइड पर जाएं।
सीपीयू केवल
निम्नलिखित उदाहरण नवीनतम 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
निर्देशिका में माउंट करता है, और होस्ट उपयोगकर्ता की जानकारी को एक पर्यावरण चर के माध्यम से कंटेनर में भेजता है (अनुमतियाँ सेट करने के लिए उपयोग किया जाता है - डॉकर इसे मुश्किल बना सकता है)।
वैकल्पिक रूप से, एक कंटेनर के भीतर 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 # if necessary
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu --config=opt
`chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
कंटेनर के भीतर पैकेज स्थापित करें और सत्यापित करें:
pip uninstall tensorflow # remove current version
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp # don't import from source directory
python -c "import tensorflow as tf; print(tf.__version__)"
आपकी होस्ट मशीन पर, TensorFlow पाइप पैकेज वर्तमान निर्देशिका में है (होस्ट उपयोगकर्ता अनुमतियों के साथ): ./tensorflow- version - tags .whl
जीपीयू समर्थन
डॉकर TensorFlow के लिए GPU समर्थन बनाने का सबसे आसान तरीका है क्योंकि होस्ट मशीन को केवल NVIDIA® ड्राइवर की आवश्यकता होती है ( NVIDIA® CUDA® टूलकिट को इंस्टॉल करने की आवश्यकता नहीं है)। एनवीडिया-डॉकर (केवल लिनक्स) सेट करने के लिए जीपीयू सपोर्ट गाइड और टेन्सरफ्लो डॉकर गाइड देखें।
निम्न उदाहरण TensorFlow :devel-gpu
छवि डाउनलोड करता है और GPU-सक्षम कंटेनर को चलाने के लिए nvidia-docker
उपयोग करता है। यह विकास छवि 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 # if necessary
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel --config=opt
chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
कंटेनर के भीतर पैकेज स्थापित करें और सत्यापित करें और GPU की जांच करें:
pip uninstall tensorflow # remove current version
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/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')))"
बिल्ड कॉन्फ़िगरेशन का परीक्षण किया गया
लिनक्स
CPU
संस्करण | पायथन संस्करण | संकलक | उपकरण बनाएं |
---|---|---|---|
टेंसरफ़्लो-2.18.0 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 |
टेंसरफ़्लो-2.17.0 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 |
टेंसरफ़्लो-2.16.1 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 |
टेंसरफ़्लो-2.15.0 | 3.9-3.11 | क्लैंग 16.0.0 | बेज़ल 6.1.0 |
टेंसरफ़्लो-2.14.0 | 3.9-3.11 | क्लैंग 16.0.0 | बेज़ल 6.1.0 |
टेंसरफ़्लो-2.13.0 | 3.8-3.11 | क्लैंग 16.0.0 | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.12.0 | 3.8-3.11 | जीसीसी 9.3.1 | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.11.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.10.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ेल 5.1.1 |
टेंसरफ़्लो-2.9.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ल 5.0.0 |
टेंसरफ़्लो-2.8.0 | 3.7-3.10 | जीसीसी 7.3.1 | बेज़ेल 4.2.1 |
टेंसरफ़्लो-2.7.0 | 3.7-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.6.0 | 3.6-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.5.0 | 3.6-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.4.0 | 3.6-3.8 | जीसीसी 7.3.1 | बेज़ेल 3.1.0 |
टेंसरफ़्लो-2.3.0 | 3.5-3.8 | जीसीसी 7.3.1 | बेज़ेल 3.1.0 |
टेंसरफ़्लो-2.2.0 | 3.5-3.8 | जीसीसी 7.3.1 | बेज़ल 2.0.0 |
टेंसरफ़्लो-2.1.0 | 2.7, 3.5-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.27.1 |
टेंसरफ़्लो-2.0.0 | 2.7, 3.3-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.26.1 |
टेंसरफ़्लो-1.15.0 | 2.7, 3.3-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.26.1 |
टेंसरफ़्लो-1.14.0 | 2.7, 3.3-3.7 | जीसीसी 4.8 | बेज़ेल 0.24.1 |
टेंसरफ़्लो-1.13.1 | 2.7, 3.3-3.7 | जीसीसी 4.8 | बेज़ेल 0.19.2 |
टेंसरफ़्लो-1.12.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.11.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.10.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.9.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.11.0 |
टेंसरफ़्लो-1.8.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ल 0.10.0 |
टेंसरफ़्लो-1.7.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ल 0.10.0 |
टेंसरफ़्लो-1.6.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.9.0 |
टेंसरफ़्लो-1.5.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.8.0 |
टेंसरफ़्लो-1.4.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.5.4 |
टेंसरफ़्लो-1.3.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.5 |
टेंसरफ्लो-1.2.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.5 |
टेंसरफ़्लो-1.1.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.2 |
टेंसरफ़्लो-1.0.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.2 |
जीपीयू
संस्करण | पायथन संस्करण | संकलक | उपकरण बनाएं | cuDNN | CUDA |
---|---|---|---|---|---|
टेंसरफ़्लो-2.18.0 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 | 9.3 | 12.5 |
टेंसरफ़्लो-2.17.0 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 | 8.9 | 12.3 |
टेंसरफ़्लो-2.16.1 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 | 8.9 | 12.3 |
टेंसरफ़्लो-2.15.0 | 3.9-3.11 | क्लैंग 16.0.0 | बेज़ल 6.1.0 | 8.9 | 12.2 |
टेंसरफ़्लो-2.14.0 | 3.9-3.11 | क्लैंग 16.0.0 | बेज़ल 6.1.0 | 8.7 | 11.8 |
टेंसरफ़्लो-2.13.0 | 3.8-3.11 | क्लैंग 16.0.0 | बेज़ेल 5.3.0 | 8.6 | 11.8 |
टेंसरफ़्लो-2.12.0 | 3.8-3.11 | जीसीसी 9.3.1 | बेज़ेल 5.3.0 | 8.6 | 11.8 |
टेंसरफ़्लो-2.11.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ेल 5.3.0 | 8.1 | 11.2 |
टेंसरफ़्लो-2.10.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ेल 5.1.1 | 8.1 | 11.2 |
टेंसरफ़्लो-2.9.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ल 5.0.0 | 8.1 | 11.2 |
टेंसरफ़्लो-2.8.0 | 3.7-3.10 | जीसीसी 7.3.1 | बेज़ेल 4.2.1 | 8.1 | 11.2 |
टेंसरफ़्लो-2.7.0 | 3.7-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 | 8.1 | 11.2 |
टेंसरफ़्लो-2.6.0 | 3.6-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 | 8.1 | 11.2 |
टेंसरफ़्लो-2.5.0 | 3.6-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 | 8.1 | 11.2 |
टेंसरफ़्लो-2.4.0 | 3.6-3.8 | जीसीसी 7.3.1 | बेज़ेल 3.1.0 | 8.0 | 11.0 |
टेंसरफ़्लो-2.3.0 | 3.5-3.8 | जीसीसी 7.3.1 | बेज़ेल 3.1.0 | 7.6 | 10.1 |
टेंसरफ़्लो-2.2.0 | 3.5-3.8 | जीसीसी 7.3.1 | बेज़ल 2.0.0 | 7.6 | 10.1 |
टेंसरफ़्लो-2.1.0 | 2.7, 3.5-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.27.1 | 7.6 | 10.1 |
टेंसरफ़्लो-2.0.0 | 2.7, 3.3-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.26.1 | 7.4 | 10.0 |
टेंसरफ्लो_जीपीयू-1.15.0 | 2.7, 3.3-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.26.1 | 7.4 | 10.0 |
टेंसरफ्लो_जीपीयू-1.14.0 | 2.7, 3.3-3.7 | जीसीसी 4.8 | बेज़ेल 0.24.1 | 7.4 | 10.0 |
टेंसरफ्लो_जीपीयू-1.13.1 | 2.7, 3.3-3.7 | जीसीसी 4.8 | बेज़ेल 0.19.2 | 7.4 | 10.0 |
टेंसरफ्लो_जीपीयू-1.12.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.11.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.10.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.9.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.11.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.8.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ल 0.10.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.7.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.9.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.6.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.9.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.5.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.8.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.4.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.5.4 | 6 | 8 |
टेंसरफ्लो_जीपीयू-1.3.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.5 | 6 | 8 |
टेंसरफ्लो_जीपीयू-1.2.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.5 | 5.1 | 8 |
टेंसरफ्लो_जीपीयू-1.1.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.2 | 5.1 | 8 |
टेंसरफ्लो_जीपीयू-1.0.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.2 | 5.1 | 8 |
मैक ओएस
CPU
संस्करण | पायथन संस्करण | संकलक | उपकरण बनाएं |
---|---|---|---|
टेंसरफ़्लो-2.16.1 | 3.9-3.12 | Xcode 13.6 से क्लैंग | बेज़ेल 6.5.0 |
टेंसरफ़्लो-2.15.0 | 3.9-3.11 | एक्सकोड 10.15 से क्लैंग | बेज़ल 6.1.0 |
टेंसरफ़्लो-2.14.0 | 3.9-3.11 | एक्सकोड 10.15 से क्लैंग | बेज़ल 6.1.0 |
टेंसरफ़्लो-2.13.0 | 3.8-3.11 | एक्सकोड 10.15 से क्लैंग | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.12.0 | 3.8-3.11 | एक्सकोड 10.15 से क्लैंग | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.11.0 | 3.7-3.10 | एक्सकोड 10.14 से क्लैंग | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.10.0 | 3.7-3.10 | एक्सकोड 10.14 से क्लैंग | बेज़ेल 5.1.1 |
टेंसरफ़्लो-2.9.0 | 3.7-3.10 | एक्सकोड 10.14 से क्लैंग | बेज़ल 5.0.0 |
टेंसरफ़्लो-2.8.0 | 3.7-3.10 | एक्सकोड 10.14 से क्लैंग | बेज़ेल 4.2.1 |
टेंसरफ़्लो-2.7.0 | 3.7-3.9 | xcode 10.11 से क्लैंग | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.6.0 | 3.6-3.9 | xcode 10.11 से क्लैंग | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.5.0 | 3.6-3.9 | xcode 10.11 से क्लैंग | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.4.0 | 3.6-3.8 | Xcode 10.3 से क्लैंग | बेज़ेल 3.1.0 |
टेंसरफ़्लो-2.3.0 | 3.5-3.8 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 3.1.0 |
टेंसरफ़्लो-2.2.0 | 3.5-3.8 | एक्सकोड 10.1 से क्लैंग | बेज़ल 2.0.0 |
टेंसरफ़्लो-2.1.0 | 2.7, 3.5-3.7 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 0.27.1 |
टेंसरफ़्लो-2.0.0 | 2.7, 3.5-3.7 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 0.27.1 |
टेंसरफ़्लो-2.0.0 | 2.7, 3.3-3.7 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 0.26.1 |
टेंसरफ़्लो-1.15.0 | 2.7, 3.3-3.7 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 0.26.1 |
टेंसरफ़्लो-1.14.0 | 2.7, 3.3-3.7 | एक्सकोड से क्लैंग | बेज़ेल 0.24.1 |
टेंसरफ़्लो-1.13.1 | 2.7, 3.3-3.7 | एक्सकोड से क्लैंग | बेज़ेल 0.19.2 |
टेंसरफ़्लो-1.12.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.11.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.10.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.9.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.11.0 |
टेंसरफ़्लो-1.8.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.10.1 |
टेंसरफ़्लो-1.7.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.10.1 |
टेंसरफ़्लो-1.6.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.8.1 |
टेंसरफ़्लो-1.5.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.8.1 |
टेंसरफ़्लो-1.4.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.5.4 |
टेंसरफ़्लो-1.3.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.5 |
टेंसरफ्लो-1.2.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.5 |
टेंसरफ़्लो-1.1.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.2 |
टेंसरफ़्लो-1.0.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.2 |
जीपीयू
संस्करण | पायथन संस्करण | संकलक | उपकरण बनाएं | cuDNN | CUDA |
---|---|---|---|---|---|
टेंसरफ्लो_जीपीयू-1.1.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.2 | 5.1 | 8 |
टेंसरफ्लो_जीपीयू-1.0.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.2 | 5.1 | 8 |
स्रोत से एक TensorFlow पाइप पैकेज बनाएं और इसे Ubuntu Linux और macOS पर इंस्टॉल करें। हालाँकि निर्देश अन्य प्रणालियों के लिए काम कर सकते हैं, लेकिन इसका परीक्षण और समर्थन केवल उबंटू और macOS के लिए किया जाता है।
Linux और macOS के लिए सेटअप
अपने विकास परिवेश को कॉन्फ़िगर करने के लिए निम्नलिखित बिल्ड टूल इंस्टॉल करें।
Python और TensorFlow पैकेज निर्भरताएँ स्थापित करें
उबंटू
sudo apt install python3-dev python3-pip
मैक ओएस
Xcode 9.2 या बाद के संस्करण की आवश्यकता है।
Homebrew पैकेज मैनेजर का उपयोग करके इंस्टॉल करें:
brew install python
TensorFlow पाइप पैकेज निर्भरताएँ स्थापित करें (यदि वर्चुअल वातावरण का उपयोग कर रहे हैं, तो --user
तर्क को छोड़ दें):
pip install -U --user pip
बेज़ेल स्थापित करें
TensorFlow बनाने के लिए, आपको Bagel इंस्टॉल करना होगा। बेज़ेलिस्क, बेज़ेल को स्थापित करने का एक आसान तरीका है और स्वचालित रूप से टेन्सरफ्लो के लिए सही बेज़ेल संस्करण डाउनलोड करता है। उपयोग में आसानी के लिए, अपने PATH
में bazel
निष्पादन योग्य के रूप में बेज़ेलिस्क जोड़ें।
यदि बेज़ेलिस्क उपलब्ध नहीं है, तो आप बेज़ेल को मैन्युअल रूप से इंस्टॉल कर सकते हैं। सुनिश्चित करें कि TensorFlow की .bazenversion फ़ाइल से सही Bazel संस्करण स्थापित किया जाए।
क्लैंग स्थापित करें (अनुशंसित, केवल लिनक्स)
क्लैंग एक सी/सी++/ऑब्जेक्टिव-सी कंपाइलर है जो एलएलवीएम पर आधारित सी++ में संकलित है। यह TensorFlow 2.13 से प्रारंभ करके TensorFlow बनाने के लिए डिफ़ॉल्ट कंपाइलर है। वर्तमान समर्थित संस्करण एलएलवीएम/क्लैंग 17 है।
एलएलवीएम डेबियन/उबंटू रात्रिकालीन पैकेज लिनक्स पर मैन्युअल इंस्टॉलेशन के लिए एक स्वचालित इंस्टॉलेशन स्क्रिप्ट और पैकेज प्रदान करते हैं। सुनिश्चित करें कि यदि आप मैन्युअल रूप से अपने पैकेज स्रोतों में एलएलवीएम उपयुक्त रिपॉजिटरी जोड़ते हैं तो आप निम्न कमांड चलाएँ:
sudo apt-get update && sudo apt-get install -y llvm-17 clang-17
अब इस मामले में /usr/lib/llvm-17/bin/clang
क्लैंग का वास्तविक मार्ग है।
वैकल्पिक रूप से, आप पूर्व-निर्मित क्लैंग + एलएलवीएम 17 को डाउनलोड और अनपैक कर सकते हैं।
नीचे उन चरणों का एक उदाहरण दिया गया है जिन्हें आप डेबियन/उबंटू ऑपरेटिंग सिस्टम पर डाउनलोड किए गए क्लैंग + एलएलवीएम 17 बायनेरिज़ को सेट करने के लिए उठा सकते हैं:
वांछित गंतव्य निर्देशिका में बदलें:
cd <desired directory>
एक संग्रह फ़ाइल लोड करें और निकालें...(आपके आर्किटेक्चर के लिए उपयुक्त):
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.2/clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
tar -xvf clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
निकाली गई सामग्री (निर्देशिका और फ़ाइलें) को
/usr
पर कॉपी करें (आपको sudo अनुमतियों की आवश्यकता हो सकती है, और सही निर्देशिका वितरण के अनुसार भिन्न हो सकती है)। यह क्लैंग और एलएलवीएम को प्रभावी ढंग से स्थापित करता है, और इसे पथ में जोड़ता है। आपको कुछ भी बदलना नहीं चाहिए, जब तक कि आपके पास पिछला इंस्टॉलेशन न हो, ऐसी स्थिति में आपको फ़ाइलें बदल देनी चाहिए:cp -r clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04/* /usr
प्राप्त क्लैंग + एलएलवीएम 17 बायनेरिज़ संस्करण की जाँच करें:
clang --version
अब वह
/usr/bin/clang
आपके नए क्लैंग का वास्तविक पथ है। आप इस पथ पर./configure
स्क्रिप्ट चला सकते हैं या मैन्युअल रूप से पर्यावरण चरCC
औरBAZEL_COMPILER
सेट कर सकते हैं।
GPU समर्थन स्थापित करें (वैकल्पिक, केवल Linux)
MacOS के लिए कोई GPU समर्थन नहीं है।
GPU पर TensorFlow चलाने के लिए आवश्यक ड्राइवर और अतिरिक्त सॉफ़्टवेयर स्थापित करने के लिए GPU समर्थन मार्गदर्शिका पढ़ें।
TensorFlow स्रोत कोड डाउनलोड करें
TensorFlow रिपॉजिटरी को क्लोन करने के लिए Git का उपयोग करें:
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
रेपो master
डेवलपमेंट शाखा में डिफ़ॉल्ट होता है। आप निर्माण के लिए एक रिलीज़ शाखा भी देख सकते हैं:
git checkout branch_name # r2.2, r2.3, etc.
बिल्ड कॉन्फ़िगर करें
TensorFlow बिल्ड को रिपॉजिटरी की रूट डायरेक्टरी में .bazelrc
फ़ाइल द्वारा कॉन्फ़िगर किया गया है। सामान्य सेटिंग्स को समायोजित करने के लिए ./configure
या ./configure.py
स्क्रिप्ट का उपयोग किया जा सकता है।
कृपया रिपॉजिटरी की रूट डायरेक्टरी से ./configure
स्क्रिप्ट चलाएँ। यह स्क्रिप्ट आपको TensorFlow निर्भरता के स्थान के लिए संकेत देगी और अतिरिक्त बिल्ड कॉन्फ़िगरेशन विकल्प (उदाहरण के लिए कंपाइलर फ़्लैग) मांगेगी। विवरण के लिए नमूना सत्र अनुभाग देखें।
./configure
इस स्क्रिप्ट का एक पायथन संस्करण भी है, ./configure.py
। यदि वर्चुअल वातावरण का उपयोग कर रहे हैं, python configure.py
पर्यावरण के भीतर पथों को प्राथमिकता देता है, जबकि ./configure
पर्यावरण के बाहर के पथों को प्राथमिकता देता है। दोनों ही मामलों में आप डिफ़ॉल्ट बदल सकते हैं.
नमूना सत्र
निम्नलिखित ./configure
स्क्रिप्ट का एक नमूना रन दिखाता है (आपका सत्र भिन्न हो सकता है):
कॉन्फ़िगरेशन विकल्प
जीपीयू समर्थन
v.2.18.0 से
GPU समर्थन के लिए, कॉन्फ़िगरेशन के दौरान cuda=Y
सेट करें और यदि आवश्यक हो तो CUDA और cuDNN के संस्करण निर्दिष्ट करें। बेज़ेल स्वचालित रूप से CUDA और CUDNN पैकेज डाउनलोड करेगा या यदि आवश्यक हो तो स्थानीय फ़ाइल सिस्टम पर CUDA/CUDNN/NCCL पुनर्वितरण को इंगित करेगा।
v.2.18.0 से पहले
GPU समर्थन के लिए, कॉन्फ़िगरेशन के दौरान cuda=Y
सेट करें और CUDA और cuDNN के संस्करण निर्दिष्ट करें। यदि आपके सिस्टम में CUDA या cuDNN के कई संस्करण स्थापित हैं, तो डिफ़ॉल्ट पर निर्भर रहने के बजाय स्पष्ट रूप से संस्करण सेट करें। ./configure
आपके सिस्टम की CUDA लाइब्रेरी के लिए प्रतीकात्मक लिंक बनाता है - इसलिए यदि आप अपने CUDA लाइब्रेरी पथ को अपडेट करते हैं, तो निर्माण से पहले इस कॉन्फ़िगरेशन चरण को फिर से चलाया जाना चाहिए।
अनुकूलन
संकलन अनुकूलन फ़्लैग के लिए, डिफ़ॉल्ट ( -march=native
) आपके मशीन के सीपीयू प्रकार के लिए जेनरेट किए गए कोड को अनुकूलित करता है। हालाँकि, यदि किसी भिन्न CPU प्रकार के लिए TensorFlow का निर्माण किया जा रहा है, तो अधिक विशिष्ट अनुकूलन ध्वज पर विचार करें। उदाहरण के लिए जीसीसी मैनुअल की जाँच करें।
पूर्व-कॉन्फ़िगर कॉन्फ़िगरेशन
कुछ पूर्व-कॉन्फ़िगर बिल्ड कॉन्फ़िगरेशन उपलब्ध हैं जिन्हें bazel build
कमांड में जोड़ा जा सकता है, उदाहरण के लिए:
-
--config=dbg
डिबग जानकारी के साथ निर्माण करें। विवरण के लिए CONTRIBUTING.md देखें। -
--config=mkl
Intel® MKL-DNN के लिए समर्थन। -
--config=monolithic
—ज्यादातर स्थिर, मोनोलिथिक निर्माण के लिए कॉन्फ़िगरेशन।
पिप पैकेज बनाएं और इंस्टॉल करें
बेज़ेल बिल्ड विकल्प
बिल्ड विकल्पों के लिए बेज़ेल कमांड-लाइन संदर्भ देखें।
स्रोत से TensorFlow बनाने में बहुत अधिक RAM का उपयोग हो सकता है। यदि आपका सिस्टम मेमोरी-बाधित है, तो बेज़ेल के रैम उपयोग को सीमित करें: --local_ram_resources=2048
।
आधिकारिक TensorFlow पैकेज क्लैंग टूलचेन के साथ बनाए गए हैं जो मैनीलिनक्स2014 पैकेज मानक का अनुपालन करते हैं।
पैकेज बनाएं
पाइप पैकेज बनाने के लिए, आपको --repo_env=WHEEL_NAME
ध्वज निर्दिष्ट करना होगा। दिए गए नाम के आधार पर, पैकेज बनाया जाएगा, उदाहरण के लिए:
टेंसरफ्लो सीपीयू पैकेज बनाने के लिए:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
टेंसरफ़्लो GPU पैकेज बनाने के लिए:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel
टेंसरफ्लो टीपीयू पैकेज बनाने के लिए:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_tpu --config=tpu
रात्रिकालीन पैकेज बनाने के लिए, tensorflow
के बजाय tf_nightly
सेट करें, उदाहरण के लिए सीपीयू रात्रिकालीन पैकेज बनाने के लिए:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu
परिणामस्वरूप, उत्पन्न पहिया स्थित होगा
bazel-bin/tensorflow/tools/pip_package/wheel_house/
पैकेज स्थापित करें
जेनरेट की गई .whl
फ़ाइल का फ़ाइल नाम TensorFlow संस्करण और आपके प्लेटफ़ॉर्म पर निर्भर करता है। उदाहरण के लिए, पैकेज को स्थापित करने के लिए pip install
उपयोग करें:
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
डॉकर लिनक्स बनाता है
TensorFlow की डॉकर विकास छवियां स्रोत से लिनक्स पैकेज बनाने के लिए एक वातावरण स्थापित करने का एक आसान तरीका है। इन छवियों में पहले से ही TensorFlow बनाने के लिए आवश्यक स्रोत कोड और निर्भरताएं शामिल हैं। इंस्टॉलेशन निर्देशों और उपलब्ध छवि टैग की सूची के लिए TensorFlow Docker गाइड पर जाएं।
सीपीयू केवल
निम्नलिखित उदाहरण नवीनतम 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
निर्देशिका में माउंट करता है, और होस्ट उपयोगकर्ता की जानकारी को एक पर्यावरण चर के माध्यम से कंटेनर में भेजता है (अनुमतियाँ सेट करने के लिए उपयोग किया जाता है - डॉकर इसे मुश्किल बना सकता है)।
वैकल्पिक रूप से, एक कंटेनर के भीतर 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 # if necessary
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu --config=opt
`chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
कंटेनर के भीतर पैकेज स्थापित करें और सत्यापित करें:
pip uninstall tensorflow # remove current version
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp # don't import from source directory
python -c "import tensorflow as tf; print(tf.__version__)"
आपकी होस्ट मशीन पर, TensorFlow पाइप पैकेज वर्तमान निर्देशिका में है (होस्ट उपयोगकर्ता अनुमतियों के साथ): ./tensorflow- version - tags .whl
जीपीयू समर्थन
डॉकर TensorFlow के लिए GPU समर्थन बनाने का सबसे आसान तरीका है क्योंकि होस्ट मशीन को केवल NVIDIA® ड्राइवर की आवश्यकता होती है ( NVIDIA® CUDA® टूलकिट को इंस्टॉल करने की आवश्यकता नहीं है)। एनवीडिया-डॉकर (केवल लिनक्स) सेट करने के लिए जीपीयू सपोर्ट गाइड और टेन्सरफ्लो डॉकर गाइड देखें।
निम्न उदाहरण TensorFlow :devel-gpu
छवि डाउनलोड करता है और GPU-सक्षम कंटेनर को चलाने के लिए nvidia-docker
उपयोग करता है। यह विकास छवि 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 # if necessary
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel --config=opt
chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
कंटेनर के भीतर पैकेज स्थापित करें और सत्यापित करें और GPU की जांच करें:
pip uninstall tensorflow # remove current version
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/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')))"
बिल्ड कॉन्फ़िगरेशन का परीक्षण किया गया
लिनक्स
CPU
संस्करण | पायथन संस्करण | संकलक | उपकरण बनाएं |
---|---|---|---|
टेंसरफ़्लो-2.18.0 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 |
टेंसरफ़्लो-2.17.0 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 |
टेंसरफ़्लो-2.16.1 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 |
टेंसरफ़्लो-2.15.0 | 3.9-3.11 | क्लैंग 16.0.0 | बेज़ल 6.1.0 |
टेंसरफ़्लो-2.14.0 | 3.9-3.11 | क्लैंग 16.0.0 | बेज़ल 6.1.0 |
टेंसरफ़्लो-2.13.0 | 3.8-3.11 | क्लैंग 16.0.0 | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.12.0 | 3.8-3.11 | जीसीसी 9.3.1 | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.11.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.10.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ेल 5.1.1 |
टेंसरफ़्लो-2.9.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ल 5.0.0 |
टेंसरफ़्लो-2.8.0 | 3.7-3.10 | जीसीसी 7.3.1 | बेज़ेल 4.2.1 |
टेंसरफ़्लो-2.7.0 | 3.7-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.6.0 | 3.6-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.5.0 | 3.6-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.4.0 | 3.6-3.8 | जीसीसी 7.3.1 | बेज़ेल 3.1.0 |
टेंसरफ़्लो-2.3.0 | 3.5-3.8 | जीसीसी 7.3.1 | बेज़ेल 3.1.0 |
टेंसरफ़्लो-2.2.0 | 3.5-3.8 | जीसीसी 7.3.1 | बेज़ल 2.0.0 |
टेंसरफ़्लो-2.1.0 | 2.7, 3.5-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.27.1 |
टेंसरफ़्लो-2.0.0 | 2.7, 3.3-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.26.1 |
टेंसरफ़्लो-1.15.0 | 2.7, 3.3-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.26.1 |
टेंसरफ़्लो-1.14.0 | 2.7, 3.3-3.7 | जीसीसी 4.8 | बेज़ेल 0.24.1 |
टेंसरफ़्लो-1.13.1 | 2.7, 3.3-3.7 | जीसीसी 4.8 | बेज़ेल 0.19.2 |
टेंसरफ़्लो-1.12.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.11.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.10.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.9.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.11.0 |
टेंसरफ़्लो-1.8.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ल 0.10.0 |
टेंसरफ़्लो-1.7.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ल 0.10.0 |
टेंसरफ़्लो-1.6.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.9.0 |
टेंसरफ़्लो-1.5.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.8.0 |
टेंसरफ़्लो-1.4.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.5.4 |
टेंसरफ़्लो-1.3.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.5 |
टेंसरफ़्लो-1.2.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.5 |
टेंसरफ़्लो-1.1.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.2 |
टेंसरफ़्लो-1.0.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.2 |
जीपीयू
संस्करण | पायथन संस्करण | संकलक | उपकरण बनाएं | cuDNN | CUDA |
---|---|---|---|---|---|
टेंसरफ़्लो-2.18.0 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 | 9.3 | 12.5 |
टेंसरफ़्लो-2.17.0 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 | 8.9 | 12.3 |
टेंसरफ़्लो-2.16.1 | 3.9-3.12 | क्लैंग 17.0.6 | बेज़ेल 6.5.0 | 8.9 | 12.3 |
टेंसरफ़्लो-2.15.0 | 3.9-3.11 | क्लैंग 16.0.0 | बेज़ल 6.1.0 | 8.9 | 12.2 |
टेंसरफ़्लो-2.14.0 | 3.9-3.11 | क्लैंग 16.0.0 | बेज़ल 6.1.0 | 8.7 | 11.8 |
टेंसरफ़्लो-2.13.0 | 3.8-3.11 | क्लैंग 16.0.0 | बेज़ेल 5.3.0 | 8.6 | 11.8 |
टेंसरफ़्लो-2.12.0 | 3.8-3.11 | जीसीसी 9.3.1 | बेज़ेल 5.3.0 | 8.6 | 11.8 |
टेंसरफ़्लो-2.11.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ेल 5.3.0 | 8.1 | 11.2 |
टेंसरफ़्लो-2.10.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ेल 5.1.1 | 8.1 | 11.2 |
टेंसरफ़्लो-2.9.0 | 3.7-3.10 | जीसीसी 9.3.1 | बेज़ल 5.0.0 | 8.1 | 11.2 |
टेंसरफ़्लो-2.8.0 | 3.7-3.10 | जीसीसी 7.3.1 | बेज़ेल 4.2.1 | 8.1 | 11.2 |
टेंसरफ़्लो-2.7.0 | 3.7-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 | 8.1 | 11.2 |
टेंसरफ़्लो-2.6.0 | 3.6-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 | 8.1 | 11.2 |
टेंसरफ़्लो-2.5.0 | 3.6-3.9 | जीसीसी 7.3.1 | बेज़ेल 3.7.2 | 8.1 | 11.2 |
टेंसरफ़्लो-2.4.0 | 3.6-3.8 | जीसीसी 7.3.1 | बेज़ेल 3.1.0 | 8.0 | 11.0 |
टेंसरफ़्लो-2.3.0 | 3.5-3.8 | जीसीसी 7.3.1 | बेज़ेल 3.1.0 | 7.6 | 10.1 |
टेंसरफ़्लो-2.2.0 | 3.5-3.8 | जीसीसी 7.3.1 | बेज़ल 2.0.0 | 7.6 | 10.1 |
टेंसरफ़्लो-2.1.0 | 2.7, 3.5-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.27.1 | 7.6 | 10.1 |
टेंसरफ़्लो-2.0.0 | 2.7, 3.3-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.26.1 | 7.4 | 10.0 |
टेंसरफ्लो_जीपीयू-1.15.0 | 2.7, 3.3-3.7 | जीसीसी 7.3.1 | बेज़ेल 0.26.1 | 7.4 | 10.0 |
टेंसरफ्लो_जीपीयू-1.14.0 | 2.7, 3.3-3.7 | जीसीसी 4.8 | बेज़ेल 0.24.1 | 7.4 | 10.0 |
टेंसरफ्लो_जीपीयू-1.13.1 | 2.7, 3.3-3.7 | जीसीसी 4.8 | बेज़ेल 0.19.2 | 7.4 | 10.0 |
टेंसरफ्लो_जीपीयू-1.12.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.11.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.10.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.15.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.9.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.11.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.8.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ल 0.10.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.7.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.9.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.6.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.9.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.5.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.8.0 | 7 | 9 |
टेंसरफ्लो_जीपीयू-1.4.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.5.4 | 6 | 8 |
टेंसरफ्लो_जीपीयू-1.3.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.5 | 6 | 8 |
टेंसरफ्लो_जीपीयू-1.2.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.5 | 5.1 | 8 |
टेंसरफ्लो_जीपीयू-1.1.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.2 | 5.1 | 8 |
टेंसरफ्लो_जीपीयू-1.0.0 | 2.7, 3.3-3.6 | जीसीसी 4.8 | बेज़ेल 0.4.2 | 5.1 | 8 |
मैक ओएस
CPU
संस्करण | पायथन संस्करण | संकलक | उपकरण बनाएं |
---|---|---|---|
टेंसरफ़्लो-2.16.1 | 3.9-3.12 | Xcode 13.6 से क्लैंग | बेज़ेल 6.5.0 |
टेंसरफ़्लो-2.15.0 | 3.9-3.11 | एक्सकोड 10.15 से क्लैंग | बेज़ल 6.1.0 |
टेंसरफ़्लो-2.14.0 | 3.9-3.11 | एक्सकोड 10.15 से क्लैंग | बेज़ल 6.1.0 |
टेंसरफ़्लो-2.13.0 | 3.8-3.11 | एक्सकोड 10.15 से क्लैंग | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.12.0 | 3.8-3.11 | एक्सकोड 10.15 से क्लैंग | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.11.0 | 3.7-3.10 | एक्सकोड 10.14 से क्लैंग | बेज़ेल 5.3.0 |
टेंसरफ़्लो-2.10.0 | 3.7-3.10 | एक्सकोड 10.14 से क्लैंग | बेज़ेल 5.1.1 |
टेंसरफ़्लो-2.9.0 | 3.7-3.10 | एक्सकोड 10.14 से क्लैंग | बेज़ल 5.0.0 |
टेंसरफ़्लो-2.8.0 | 3.7-3.10 | एक्सकोड 10.14 से क्लैंग | बेज़ेल 4.2.1 |
टेंसरफ़्लो-2.7.0 | 3.7-3.9 | xcode 10.11 से क्लैंग | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.6.0 | 3.6-3.9 | xcode 10.11 से क्लैंग | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.5.0 | 3.6-3.9 | xcode 10.11 से क्लैंग | बेज़ेल 3.7.2 |
टेंसरफ़्लो-2.4.0 | 3.6-3.8 | Xcode 10.3 से क्लैंग | बेज़ेल 3.1.0 |
टेंसरफ़्लो-2.3.0 | 3.5-3.8 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 3.1.0 |
टेंसरफ़्लो-2.2.0 | 3.5-3.8 | एक्सकोड 10.1 से क्लैंग | बेज़ल 2.0.0 |
टेंसरफ़्लो-2.1.0 | 2.7, 3.5-3.7 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 0.27.1 |
टेंसरफ़्लो-2.0.0 | 2.7, 3.5-3.7 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 0.27.1 |
टेंसरफ़्लो-2.0.0 | 2.7, 3.3-3.7 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 0.26.1 |
टेंसरफ़्लो-1.15.0 | 2.7, 3.3-3.7 | एक्सकोड 10.1 से क्लैंग | बेज़ेल 0.26.1 |
टेंसरफ़्लो-1.14.0 | 2.7, 3.3-3.7 | एक्सकोड से क्लैंग | बेज़ेल 0.24.1 |
टेंसरफ़्लो-1.13.1 | 2.7, 3.3-3.7 | एक्सकोड से क्लैंग | बेज़ेल 0.19.2 |
टेंसरफ़्लो-1.12.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.11.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.10.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.15.0 |
टेंसरफ़्लो-1.9.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.11.0 |
टेंसरफ़्लो-1.8.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ल 0.10.1 |
टेंसरफ़्लो-1.7.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.10.1 |
टेंसरफ़्लो-1.6.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.8.1 |
टेंसरफ़्लो-1.5.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.8.1 |
टेंसरफ़्लो-1.4.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.5.4 |
टेंसरफ़्लो-1.3.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.5 |
टेंसरफ्लो-1.2.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.5 |
टेंसरफ़्लो-1.1.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.2 |
टेंसरफ़्लो-1.0.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.2 |
जीपीयू
संस्करण | पायथन संस्करण | संकलक | उपकरण बनाएं | cuDNN | CUDA |
---|---|---|---|---|---|
टेंसरफ्लो_जीपीयू-1.1.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.2 | 5.1 | 8 |
टेंसरफ्लो_जीपीयू-1.0.0 | 2.7, 3.3-3.6 | एक्सकोड से क्लैंग | बेज़ेल 0.4.2 | 5.1 | 8 |