नई परियोजनाओं के लिए वाईडीएफ को प्राथमिकता दें
निर्णय वनों को प्रशिक्षित करने के लिए YDF Google की नई लाइब्रेरी है।
YDF TF-DF की शक्ति का विस्तार करता है, नई सुविधाएँ, एक सरलीकृत API, तेज़ प्रशिक्षण समय, अद्यतन दस्तावेज़ीकरण और लोकप्रिय ML पुस्तकालयों के साथ बेहतर संगतता प्रदान करता है।
नीचे उल्लिखित कुछ मुद्दे YDF में ठीक कर दिए गए हैं।
विंडोज़ पिप पैकेज उपलब्ध नहीं है
TensorFlow डिसीज़न फ़ॉरेस्ट अभी तक Windows Pip पैकेज के रूप में उपलब्ध नहीं है।
समाधान:
- समाधान #1: अपनी विंडोज़ मशीन पर लिनक्स के लिए विंडोज़ सबसिस्टम (डब्ल्यूएसएल) स्थापित करें और लिनक्स निर्देशों का पालन करें।
केरस 3 के साथ असंगति
केरस 3 के साथ संगतता अभी तक लागू नहीं की गई है। 2.16 से पहले tf_keras या TensorFlow संस्करण का उपयोग करें। वैकल्पिक रूप से, ydf का उपयोग करें।
कोंडा के लिए परीक्षण नहीं किया गया
जबकि टीएफ-डीएफ कोंडा के साथ काम कर सकता है, इसका परीक्षण नहीं किया गया है और हम वर्तमान में कोंडा-फोर्ज पर पैकेज का रखरखाव नहीं करते हैं।
TensorFlow के पुराने या रात्रिकालीन संस्करणों के साथ असंगति
TensorFlow का ABI रिलीज़ के बीच में संगत नहीं है। क्योंकि TF-DF कस्टम TensorFlow C++ ऑप्स पर निर्भर करता है, TF-DF का प्रत्येक संस्करण TensorFlow के एक विशिष्ट संस्करण से जुड़ा होता है। TF-DF का अंतिम रिलीज़ संस्करण हमेशा TensorFlow के अंतिम रिलीज़ संस्करण से जुड़ा होता है।
इन कारणों से, TF-DF का वर्तमान संस्करण पुराने संस्करणों या TensorFlow के रात्रिकालीन निर्माण के साथ संगत नहीं हो सकता है।
यदि टीएफ और टीएफ-डीएफ के असंगत संस्करणों का उपयोग किया जाता है, तो आपको गुप्त त्रुटियां दिखाई देंगी जैसे:
tensorflow_decision_forests/tensorflow/ops/training/training.so: undefined symbol: _ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceEN4absl14lts_2020_09_2311string_viewEPSs
- TF-DF के उस संस्करण का उपयोग करें जो आपके TensorFlow के संस्करण के साथ संगत है।
अनुकूलता तालिका
निम्न तालिका tensorflow_decision_forests
और इसकी निर्भरता के बीच संगतता दिखाती है:
टेंसरफ्लो_निर्णय_वन | टेंसरफ्लो |
---|---|
1.11.0 | 2.18.0 |
1.10.0 | 2.17.0 |
1.9.2 | 2.16.2 |
1.9.1 | 2.16.1 |
1.9.0 | 2.16.1 |
1.8.0 - 1.8.1 | 2.15.0 |
1.6.0 - 1.7.0 | 2.14.0 |
1.5.0 | 2.13.0 |
1.3.0 - 1.4.0 | 2.12.0 |
1.1.0 - 1.2.0 | 2.11.0 |
1.0.0 - 1.0.1 | 2.10.0 - 2.10.1 |
0.2.6 - 0.2.7 | 2.9.1 |
0.2.5 | 2.9 |
0.2.4 | 2.8 |
0.2.1 - 0.2.3 | 2.7 |
0.1.9 - 0.2.0 | 2.6 |
0.1.1 - 0.1.8 | 2.5 |
0.1.0 | 2.4 |
- समाधान #2: अपने प्रीप्रोसेसिंग फ़ंक्शन को दूसरे फ़ंक्शन में लपेटें जो इसके इनपुट को निचोड़ता है ।
सभी मॉडल वितरित प्रशिक्षण और वितरण रणनीतियों का समर्थन नहीं करते हैं
जब तक निर्दिष्ट न किया जाए, मॉडलों को एक ही मशीन पर प्रशिक्षित किया जाता है और वे वितरण रणनीतियों के अनुकूल नहीं होते हैं। उदाहरण के लिए GradientBoostedTreesModel
वितरित प्रशिक्षण का समर्थन नहीं करता है जबकि DistributedGradientBoostedTreesModel
करता है।
समाधान:
- ऐसे मॉडल का उपयोग करें जो वितरण रणनीतियों का समर्थन करता है (उदाहरण के लिए
DistributedGradientBoostedTreesModel
), या अपने डेटासेट को डाउनसैंपल करें ताकि यह एक ही मशीन पर फिट हो सके।
GPU/TPU के लिए कोई समर्थन नहीं.
टीएफ-डीएफ जीपीयू या टीपीयू प्रशिक्षण का समर्थन नहीं करता है। हालाँकि, AVX निर्देशों के साथ संकलन करने से सेवा में तेजी आ सकती है।
model_to_estimator के लिए कोई समर्थन नहीं
टीएफ-डीएफ प्रशिक्षित/अप्रशिक्षित मॉडल को अनुमानक प्रारूप में बदलने के लिए आवश्यक एपीआई लागू नहीं करता है।
लोड किए गए मॉडल पायथन मॉडल से भिन्न व्यवहार करते हैं।
केरस एपीआई द्वारा अमूर्त किए जाने पर, पायथन में इंस्टेंटिअट किया गया एक मॉडल (उदाहरण के लिए, tfdf.keras.RandomForestModel()
के साथ) और डिस्क से लोड किया गया एक मॉडल (उदाहरण के लिए, tf_keras.models.load_model()
के साथ) अलग-अलग व्यवहार कर सकता है। विशेष रूप से, एक पायथन इंस्टेंटियेटेड मॉडल स्वचालित रूप से आवश्यक प्रकार के रूपांतरण लागू करता है। उदाहरण के लिए, यदि float32
फीचर की अपेक्षा वाले मॉडल को float64
फीचर खिलाया जाता है, तो यह रूपांतरण अंतर्निहित रूप से किया जाता है। हालाँकि, डिस्क से लोड किए गए मॉडल के लिए ऐसा रूपांतरण संभव नहीं है। इसलिए यह महत्वपूर्ण है कि प्रशिक्षण डेटा और अनुमान डेटा हमेशा एक ही प्रकार के हों।
टेंसरफ़्लो सुविधा का नाम सैनिटाइज़ेशन
उदाहरण के लिए, टेन्सरफ्लो फीचर नामों को साफ करता है और उन्हें लोअरकेस में बदल सकता है।