फिक्स: आपका सीपीयू निर्देश का समर्थन करता है कि यह TensorFlow बाइनरी AVX2 का उपयोग करने के लिए संकलित नहीं किया गया था



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

उन्नत वेक्टर एक्सटेंशन ( एवीएक्स , के रूप में भी जाना जाता है सैंडी ब्रिज नए एक्सटेंशन ) मार्च 2008 में इंटेल द्वारा प्रस्तावित इंटेल और एएमडी से माइक्रोप्रोसेसरों के लिए x86 इंस्ट्रक्शन सेट आर्किटेक्चर के लिए एक्सटेंशन हैं और पहली बार इंटेल द्वारा Q1 2011 में सैंडी ब्रिज प्रोसेसर शिपिंग के साथ और बाद में AMD द्वारा बुलडोजर प्रोसेसर शिपिंग के साथ Q3 2011 में AVX द्वारा समर्थित है। AVX नई सुविधाएँ, नए निर्देश और एक नई कोडिंग योजना प्रदान करता है।



चेतावनी को cmd में दिखाया गया है



यह चेतावनी संदेश TensorFlow की साझा लाइब्रेरी द्वारा छापा गया है। जैसे ही संदेश इंगित करता है, साझा पुस्तकालय में आपके सीपीयू द्वारा उपयोग किए जाने वाले निर्देश शामिल नहीं होते हैं।



इस चेतावनी का क्या कारण है?

TensorFlow 1.6 के बाद, बायनेरिज़ अब AVX निर्देशों का उपयोग करते हैं जो अब पुराने सीपीयू पर नहीं चल सकते हैं। इसलिए पुराने CPU एवीएक्स को चलाने में असमर्थ होंगे, जबकि नए लोगों के लिए, उपयोगकर्ता को अपने सीपीयू के लिए स्रोत से टेंसरफ़्लो का निर्माण करने की आवश्यकता होती है। इस विशेष चेतावनी के बारे में जानने के लिए आपको सभी जानकारी नीचे दी गई है। साथ ही, भविष्य में उपयोग के लिए इस चेतावनी से छुटकारा पाने के बारे में एक विधि।

AVX क्या करता है?

विशेष रूप से, एवीएक्स ने एफएमए (फ्यूज्ड मल्टीली-ऐड) की शुरुआत की; जो फ़्लोटिंग-पॉइंट मल्टीप्ल-ऐड ऑपरेशन है, और यह सारा ऑपरेशन एक ही चरण में किया जाता है। यह बिना किसी समस्या के कई ऑपरेशनों को गति देने में मदद करता है। यह बीजगणित अभिकलन को अधिक तेज और आसान उपयोग करता है, साथ ही डॉट-उत्पाद, मैट्रिक्स गुणा, कनविक्शन, आदि। और ये सभी मशीन-लर्निंग प्रशिक्षण के लिए सबसे अधिक उपयोग किए जाने वाले और बुनियादी संचालन हैं। AVX और FMA का समर्थन करने वाले CPU पुराने लोगों की तुलना में अधिक तेज़ होंगे। लेकिन चेतावनी में कहा गया है कि आपका CPU AVX का समर्थन करता है, इसलिए यह एक अच्छा बिंदु है।

इंटेल एवीएक्स टेक्नोलॉजी



डिफ़ॉल्ट रूप से इसका उपयोग क्यों नहीं किया जाता है?

ऐसा इसलिए है क्योंकि TensorFlow डिफ़ॉल्ट वितरण सीपीयू एक्सटेंशन के बिना बनाया गया है। CPU एक्सटेंशन द्वारा यह AVX, AVX2, FMA, आदि बताता है। इस मुद्दे को ट्रिगर करने वाले निर्देश उपलब्ध डिफ़ॉल्ट बिल्ड पर डिफ़ॉल्ट रूप से सक्षम नहीं हैं। जिन कारणों से वे सक्षम नहीं हैं, उन्हें अधिक से अधिक सीपीयू के साथ संगत बनाना है। इन एक्सटेंशनों की तुलना करने के लिए, वे GPU के बजाय CPU में बहुत धीमे हैं। CPU का उपयोग छोटे पैमाने पर मशीन-लर्निंग पर किया जाता है जबकि GPU का उपयोग तब किया जाता है जब इसका उपयोग मध्यम या बड़े पैमाने पर मशीन-लर्निंग प्रशिक्षण के लिए किया जाता है।

चेतावनी फिक्सिंग!

ये चेतावनी केवल सरल संदेश हैं। इन चेतावनियों का उद्देश्य आपको स्रोत से निर्मित TensorFlow के बारे में सूचित करना है। जब आप स्रोत से TensorFlow का निर्माण करते हैं तो यह मशीन पर तेज हो सकता है। तो इन सभी चेतावनियों के बारे में आपको बता रहे हैं कि स्रोत से TensorFlow बिल्ड है।

यदि आपके पास अपनी मशीन पर GPU है, तो आप AVX समर्थन से इन चेतावनियों को अनदेखा कर सकते हैं। क्योंकि अधिकांश महंगे जीपीयू डिवाइस पर भेजे जाएंगे। और अगर आप इस त्रुटि को नहीं देखना चाहते हैं, तो आप इसे जोड़कर बस इसे अनदेखा कर सकते हैं:

आयात करें ओएस मॉड्यूल अपने मुख्य कार्यक्रम कोड में और इसके लिए मैपिंग ऑब्जेक्ट भी सेट करें

 # चेतावनी को अक्षम करने के लिए   उन्हें आयात करें   os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

लेकिन अगर आप ए यूनिक्स , फिर bash शेल में एक्सपोर्ट कमांड का उपयोग करें

 निर्यात TF_CPP_MIN_LOG_LEVEL = 2 

लेकिन अगर आपके पास GPU नहीं है, और आप अपने CPU का अधिक से अधिक उपयोग करना चाहते हैं, तो आपको AVX, AVX2 और FMA सक्षम के साथ अपने CPU के लिए अनुकूलित स्रोत से TensorFlow का निर्माण करना चाहिए। यहाँ ।

2 मिनट पढ़ा