उन्नत वेक्टर एक्सटेंशन (एवीएक्स , जिसे सैंडी ब्रिज न्यू एक्सटेंशन . के नाम से भी जाना जाता है ) मार्च 2008 में इंटेल द्वारा प्रस्तावित इंटेल और एएमडी से माइक्रोप्रोसेसरों के लिए x86 निर्देश सेट आर्किटेक्चर के एक्सटेंशन हैं और पहली बार Q1 2011 में सैंडी ब्रिज प्रोसेसर शिपिंग के साथ इंटेल द्वारा समर्थित हैं और बाद में Q3 2011 में बुलडोजर प्रोसेसर शिपिंग के साथ AMD द्वारा समर्थित हैं। AVX नई सुविधाएँ, नए निर्देश और एक नई कोडिंग योजना प्रदान करता है।
यह चेतावनी संदेश TensorFlow की साझा लाइब्रेरी द्वारा मुद्रित किया जाता है। जैसा कि संदेश इंगित करता है, साझा पुस्तकालय में उस प्रकार के निर्देश शामिल नहीं होते हैं जिनका उपयोग आपका सीपीयू कर सकता है।
इस चेतावनी का क्या कारण है?
TensorFlow 1.6 के बाद, बायनेरिज़ अब AVX निर्देशों का उपयोग करते हैं जो अब पुराने CPU पर नहीं चल सकते हैं। इसलिए पुराने CPU AVX को चलाने में असमर्थ होंगे, जबकि नए CPU के लिए, उपयोगकर्ता को अपने CPU के लिए स्रोत से tensorflow बनाने की आवश्यकता होती है। इस विशेष चेतावनी के बारे में जानने के लिए आपको आवश्यक सभी जानकारी नीचे दी गई है। साथ ही, भविष्य में उपयोग के लिए इस चेतावनी से छुटकारा पाने की एक विधि।
AVX क्या करता है?
विशेष रूप से, AVX ने FMA (फ्यूज्ड मल्टीप्ली-ऐड) की शुरुआत की; जो फ़्लोटिंग-पॉइंट मल्टीप्ली-ऐड ऑपरेशन है, और यह सब ऑपरेशन एक ही चरण में किया जाता है। यह बिना किसी समस्या के कई कार्यों को गति देने में मदद करता है। यह बीजगणित की गणना को अधिक तेज़ और आसान उपयोग करता है, साथ ही डॉट-उत्पाद, मैट्रिक्स गुणा, कनवल्शन इत्यादि। और ये सभी मशीन-लर्निंग प्रशिक्षण के लिए सबसे अधिक उपयोग किए जाने वाले और बुनियादी संचालन हैं। AVX और FMA को सपोर्ट करने वाले CPU पुराने वाले की तुलना में कहीं अधिक तेज़ होंगे। लेकिन चेतावनी में कहा गया है कि आपका CPU AVX को सपोर्ट करता है, इसलिए यह एक अच्छी बात है।
डिफ़ॉल्ट रूप से इसका उपयोग क्यों नहीं किया जाता है?
ऐसा इसलिए है क्योंकि TensorFlow डिफ़ॉल्ट वितरण CPU एक्सटेंशन के बिना बनाया गया है। CPU एक्सटेंशन द्वारा यह AVX, AVX2, FMA, आदि बताता है। इस समस्या को ट्रिगर करने वाले निर्देश उपलब्ध डिफ़ॉल्ट बिल्ड पर डिफ़ॉल्ट रूप से सक्षम नहीं होते हैं। जिन कारणों से वे सक्षम नहीं हैं, वे इसे अधिक से अधिक CPU के साथ अधिक संगत बनाना है। साथ ही इन एक्सटेंशन की तुलना करने के लिए, वे GPU के बजाय CPU में बहुत धीमे हैं। सीपीयू का उपयोग छोटे पैमाने पर मशीन-लर्निंग पर किया जाता है, जबकि जीपीयू के उपयोग की अपेक्षा तब की जाती है जब इसका उपयोग मध्यम या बड़े पैमाने पर मशीन-लर्निंग प्रशिक्षण के लिए किया जाता है।
चेतावनी को ठीक करना!
ये चेतावनियाँ केवल साधारण संदेश हैं। इन चेतावनियों का उद्देश्य आपको स्रोत से निर्मित TensorFlow के बारे में सूचित करना है। जब आप स्रोत से TensorFlow बनाते हैं तो यह मशीन पर तेज़ हो सकता है। तो ये सभी चेतावनियाँ आपको स्रोत से TensorFlow के निर्माण के बारे में बता रही हैं।
यदि आपकी मशीन पर GPU है, तो आप AVX समर्थन से इन चेतावनियों को अनदेखा कर सकते हैं। क्योंकि सबसे महंगे वाले को GPU डिवाइस पर भेजा जाएगा। और अगर आप अब इस त्रुटि को नहीं देखना चाहते हैं, तो आप इसे जोड़कर इसे अनदेखा कर सकते हैं:
OS मॉड्यूल आयात करें अपने मुख्य प्रोग्राम कोड में और इसके लिए मैपिंग ऑब्जेक्ट भी सेट करें
# For disabling the warning import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
लेकिन अगर आप एक यूनिक्स . पर हैं , फिर निर्यात कमांड का उपयोग बैश शेल में करें
export TF_CPP_MIN_LOG_LEVEL=2
लेकिन अगर आपके पास GPU नहीं है, और आप अपने CPU का अधिक से अधिक उपयोग करना चाहते हैं, तो आपको अपने CPU के लिए अनुकूलित स्रोत से TensorFlow का निर्माण करना चाहिए जिसमें AVX, AVX2 और FMA सक्षम हों।