انضم إلينا في DevFest لأوكرانيا من 14 إلى 15 يونيو عبر الإنترنت سجل الآن

باستخدام tf.Transform مع TensorFlow 2.x

بدءا من 0.30 الإفراج عن tf.Transform ، السلوك الافتراضي لتصدير SavedModel TF الإصدار 2.x ما لم يتم تعطيل صراحة السلوكيات TF الإصدار 2.x. هذه الصفحة توفر دليل لاستخدام tf.Transform لتصدير تحويل الرسم البياني كما TensorFlow الإصدار 2.x SavedModel.

الجديد في tf.Transform with TF 2.x

تحميل نماذج Keras داخل preprocessing_fn

الرجاء استخدام tft.make_and_track_object API لتحميل نماذج Keras كما هو موضح في المثال التالي.

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 وتتبع وتصديرها على أنها SavedModel TF الإصدار 2.x (هذا هو السلوك الافتراضي بدءا tensorflow_transform 0.30 ). الرجاء استخدام tft.make_and_track_object API لتحميل tf.hub وحدات كما هو موضح في المثال التالي.

def preprocessing_fn(inputs):
  hub_module = tft.make_and_track_object(lambda: hub.load(...))
  ...
  return {'hub_module_output': hub_module(inputs[...])}

قضايا الهجرة المحتملة

إذا كان ترحيل موجود tf.Transform خط أنابيب من TF TF 1.x إلى الإصدار 2.x، قد تواجه المسائل التالية:

RuntimeError: ترتيب تحليل في حياتك preprocessing_fn يبدو غير القطعية.

في TF الإصدار 2.x، و preprocessing_fn المقدمة من قبل المستخدم وتتبع عدة مرات. إذا تغير الترتيب الذي يتم من خلاله مواجهة أجهزة تحليل TFT مع كل عملية تتبع ، فسيتم رفع هذا الخطأ. يمكن إصلاح ذلك عن طريق إزالة أي عدم حتمية بالترتيب الذي يتم فيه استدعاء محللات TFT.

إخراج 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.

دعم المدرب مع المنفذ القائم على المقدر هو أفضل جهد. أثناء عمل المقدرين الآخرين ، رأينا مشكلات في تهيئة الجدول في تصنيف BaselineClassifier. إرضاء الإصدار 2.x TF في تعطيل tf.Transform .

المشكلات المعروفة / الميزات غير المعتمدة حتى الآن

لم يتم دعم إخراج المفردات بتنسيق TFRecord حتى الآن.

tfrecord_gzip غير معتمد بعد كقيمة صالحة لل file_format المعلمة في tft.vocabulary (وغيرها من واجهات برمجة التطبيقات المفردات).

الاحتفاظ بسلوك التحويل القديم

إذا كان لديك tf.Transform لا يجب تشغيل خط أنابيب مع TF الإصدار 2.x، يمكنك الإبقاء على السلوك القديم في واحدة من الطرق التالية: