tf.Transform
के 0.30
रिलीज से शुरू होकर, डिफ़ॉल्ट व्यवहार TF 2.x SavedModel को निर्यात करना है जब तक कि TF 2.x व्यवहार स्पष्ट रूप से अक्षम न हो। यह पृष्ठ ट्रांसफ़ॉर्म ग्राफ़ को TensorFlow 2.x SavedModel के रूप में निर्यात करने के लिए tf.Transform
उपयोग करने के लिए एक मार्गदर्शिका प्रदान करता है।
TF 2.x के साथ tf.Transform में नया
preprocessing_fn
के भीतर केरस मॉडल लोड हो रहा है
कृपया केरस मॉडल लोड करने के लिए tft.make_and_track_object
API का उपयोग करें जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।
def preprocessing_fn(inputs):
keras_model = tft.make_and_track_object(lambda: tf.keras.models.load_model(...), name='_unique_name')
...
return {'keras_model_output': keras_model(inputs[...])}
TF 2.x tf.hub मॉड्यूल का उपयोग करना
TF 2.x हब मॉड्यूल tf.Transform
में तभी काम करते हैं जब preprocessing_fn
पता लगाया जाता है और TF 2.x SavedModel के रूप में निर्यात किया जाता है (यह tensorflow_transform 0.30
से शुरू होने वाला डिफ़ॉल्ट व्यवहार है)। कृपया tf.hub
मॉड्यूल लोड करने के लिए tft.make_and_track_object
API का उपयोग करें जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।
def preprocessing_fn(inputs):
hub_module = tft.make_and_track_object(lambda: hub.load(...))
...
return {'hub_module_output': hub_module(inputs[...])}
संभावित प्रवासन मुद्दे
यदि मौजूदा tf.Transform
पाइपलाइन को TF 1.x से TF 2.x में स्थानांतरित किया जाता है, तो निम्नलिखित समस्याओं का सामना करना पड़ सकता है:
रनटाइम त्रुटि: आपके preprocessing_fn
में विश्लेषकों का क्रम गैर-नियतात्मक प्रतीत होता है।
TF 2.x में, उपयोगकर्ता द्वारा प्रदान किए गए preprocessing_fn
कई बार पता लगाया जाता है। यदि टीएफटी विश्लेषकों का सामना करने का क्रम प्रत्येक ट्रेस के साथ बदलता है, तो यह त्रुटि उत्पन्न हो जाएगी। टीएफटी विश्लेषकों को लागू करने के क्रम में किसी भी गैर-नियतत्ववाद को हटाकर इसे ठीक किया जा सकता है।
transform_raw_features
के आउटपुट में अपेक्षित सुविधा शामिल नहीं है।
उदाहरण अपवाद:
KeyError: \<feature key
या
\<feature key> not found in features dictionary.
TFTransformOutput.transform_raw_features
पैरामीटर drop_unused_features
अनदेखा करता है और ऐसा व्यवहार करता है मानो यह सत्य हो। कृपया इस एपीआई से आउटपुट डिक्शनरी के किसी भी उपयोग को अपडेट करें ताकि यह जांचा जा सके कि आप जिस कुंजी को पुनः प्राप्त करने का प्रयास कर रहे हैं वह इसमें मौजूद है या नहीं।
tf.estimator.BaselineClassifier को तालिका प्रारंभ न होने की त्रुटि दिखाई देती है।
उदाहरण अपवाद:
tensorflow.python.framework.errors_impl.FailedPreconditionError: Table not initialized.
अनुमानक आधारित निष्पादक के साथ ट्रेनर के लिए समर्थन सर्वोत्तम प्रयास है। जबकि अन्य अनुमानकर्ता काम करते हैं, हमने बेसलाइनक्लासिफायर में तालिका आरंभीकरण के साथ समस्याएं देखी हैं। कृपया tf.Transform
में TF 2.x को अक्षम करें ।
ज्ञात समस्याएँ/सुविधाएँ अभी तक समर्थित नहीं हैं
TFRecord प्रारूप में शब्दावलियाँ आउटपुट करना अभी तक समर्थित नहीं है।
tfrecord_gzip
अभी तक tft.vocabulary
(और अन्य शब्दावली एपीआई) में file_format
पैरामीटर के लिए मान्य मान के रूप में समर्थित नहीं है।
व्यवहार परिवर्तन की विरासत को बरकरार रखना
यदि आपकी tf.Transform
पाइपलाइन TF 2.x के साथ नहीं चलनी चाहिए, तो आप निम्नलिखित में से किसी एक तरीके से विरासत व्यवहार को बनाए रख सकते हैं:
-
tf.compat.v1.disable_v2_behavior()
पर कॉल करकेtf.Transform
में TF2 को अक्षम करें - यदि
tf.Transform
एक स्टैंडअलोन लाइब्रेरी के रूप में या TFX में ट्रांसफॉर्म घटक के रूप में उपयोग किया जाता है, तोforce_tf_compat_v1=True
कोtft_beam.Context
में पास करना।