নতুন প্রকল্পের জন্য YDF পছন্দ করুন
YDF হল Google-এর নতুন লাইব্রেরি ডিসিশন ফরেস্টকে প্রশিক্ষণ দেওয়ার জন্য।
YDF TF-DF এর ক্ষমতাকে প্রসারিত করে, নতুন বৈশিষ্ট্য, একটি সরলীকৃত API, দ্রুত প্রশিক্ষণের সময়, আপডেট হওয়া ডকুমেন্টেশন এবং জনপ্রিয় ML লাইব্রেরির সাথে উন্নত সামঞ্জস্য প্রদান করে।
নিচে উল্লেখ করা কিছু সমস্যা YDF-এ ঠিক করা হয়েছে।
উইন্ডোজ পিপ প্যাকেজ উপলব্ধ নয়
টেনসরফ্লো ডিসিশন ফরেস্ট এখনও উইন্ডোজ পিপ প্যাকেজ হিসাবে উপলব্ধ নয়।
সমাধান:
- সমাধান #1: আপনার উইন্ডোজ মেশিনে লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম (WSL) ইনস্টল করুন এবং লিনাক্সের নির্দেশাবলী অনুসরণ করুন।
কেরাসের সাথে অসঙ্গতি 3
কেরাস 3 এর সাথে সামঞ্জস্যপূর্ণতা এখনও বাস্তবায়িত হয়নি। 2.16 এর আগে tf_keras বা একটি TensorFlow সংস্করণ ব্যবহার করুন। বিকল্পভাবে, ydf ব্যবহার করুন।
কনডা জন্য অপরীক্ষিত
যদিও TF-DF Conda-এর সাথে কাজ করতে পারে, এটি পরীক্ষা করা হয় না এবং আমরা বর্তমানে conda-forge-এ প্যাকেজগুলি বজায় রাখি না।
TensorFlow-এর পুরানো বা রাতের সংস্করণের সাথে অসঙ্গতি
TensorFlow এর ABI রিলিজের মধ্যে সামঞ্জস্যপূর্ণ নয়। যেহেতু TF-DF কাস্টম TensorFlow C++ ops-এর উপর নির্ভর করে, TF-DF-এর প্রতিটি সংস্করণ TensorFlow-এর একটি নির্দিষ্ট সংস্করণের সাথে সংযুক্ত থাকে। TF-DF এর সর্বশেষ প্রকাশিত সংস্করণটি সর্বদা TensorFlow এর সর্বশেষ প্রকাশিত সংস্করণের সাথে সংযুক্ত থাকে।
এই কারণে, TF-DF-এর বর্তমান সংস্করণটি পুরানো সংস্করণের সাথে বা TensorFlow-এর রাতের বিল্ডের সাথে সামঞ্জস্যপূর্ণ নাও হতে পারে।
TF এবং TF-DF এর বেমানান সংস্করণ ব্যবহার করলে, আপনি গোপনীয় ত্রুটি দেখতে পাবেন যেমন:
tensorflow_decision_forests/tensorflow/ops/training/training.so: undefined symbol: _ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceEN4absl14lts_2020_09_2311string_viewEPSs
- TF-DF-এর সংস্করণ ব্যবহার করুন যা আপনার TensorFlow সংস্করণের সাথে সামঞ্জস্যপূর্ণ।
সামঞ্জস্য টেবিল
নিম্নলিখিত টেবিলটি tensorflow_decision_forests
এবং এর নির্ভরতার মধ্যে সামঞ্জস্যতা দেখায়:
tensorflow_decision_forests | tensorflow |
---|---|
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 এর জন্য কোন সমর্থন নেই।
TF-DF GPU বা TPU প্রশিক্ষণ সমর্থন করে না। AVX নির্দেশাবলীর সাথে কম্পাইল করা, তবে, পরিবেশনের গতি বাড়িয়ে দিতে পারে।
মডেল_টু_এস্টিমেটরের জন্য কোন সমর্থন নেই
TF-DF একটি প্রশিক্ষিত/অপ্রশিক্ষিত মডেলকে এস্টিমেটর ফরম্যাটে রূপান্তর করার জন্য প্রয়োজনীয় APIগুলি বাস্তবায়ন করে না।
লোড করা মডেলগুলি পাইথন মডেলের চেয়ে ভিন্নভাবে আচরণ করে।
কেরাস এপিআই দ্বারা বিমূর্ত করার সময়, পাইথনে ইনস্ট্যান্টিয়েট করা একটি মডেল (যেমন, tfdf.keras.RandomForestModel()
) এবং ডিস্ক থেকে লোড করা একটি মডেল (যেমন, tf_keras.models.load_model()
এর সাথে) ভিন্নভাবে আচরণ করতে পারে। উল্লেখযোগ্যভাবে, একটি পাইথন ইনস্ট্যান্টিয়েটেড মডেল স্বয়ংক্রিয়ভাবে প্রয়োজনীয় ধরনের রূপান্তর প্রয়োগ করে। উদাহরণস্বরূপ, যদি একটি float64
বৈশিষ্ট্য একটি float32
বৈশিষ্ট্য প্রত্যাশিত একটি মডেলকে খাওয়ানো হয়, এই রূপান্তরটি পরোক্ষভাবে সঞ্চালিত হয়। যাইহোক, ডিস্ক থেকে লোড করা মডেলগুলির জন্য এই ধরনের রূপান্তর সম্ভব নয়। তাই এটা গুরুত্বপূর্ণ যে প্রশিক্ষণের তথ্য এবং অনুমান ডেটা সবসময় একই ধরনের থাকে।
টেনসরফ্লো বৈশিষ্ট্যের নাম স্যানিটাইজেশন
টেনসরফ্লো বৈশিষ্ট্যের নামগুলিকে স্যানিটাইজ করে এবং উদাহরণস্বরূপ, সেগুলিকে ছোট হাতের অক্ষরে রূপান্তর করতে পারে।