ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

مشاكل معروفة

يمكن أن يؤدي التجميع باستخدام XLA إلى تحسين أداء برامجك بشكل كبير ، ولكن يوجد عدد من الزوايا الحادة المعروفة في TensorFlow.

تحويل داخلي TensorArray TF / XLA

رسالة الخطأ : Support for TensorList crossing the XLA/TF boundary is not implemented .

يدعم XLA tf.TensorArray . ومع ذلك ، لم يتم تنفيذ التحويل البيني بين تمثيلات TF و XLA بعد. غالبًا ما ينشأ هذا الخطأ عند استخدام TensorArray داخل الكتلة المترجمة ، ولكن يتم أخذ المشتق إلى الخارج.

الحل البديل : تجميع النطاق الأبعد الذي يأخذ المشتق.

يجب تقييد TensorFlow أثناء التكرارات (أو تعطيل خاصية backprop)

رسالة الخطأ : XLA compilation requires a fixed tensor list size. Set the max number of elements. This could also happen if you're using a TensorArray in a while loop that does not have its maximum_iteration set, you can fix this by setting maximum_iteration to a suitable value .

تم إنشاء حلقات TF while باستخدام tf.while_loop support backpropagation من خلال تجميع جميع النتائج الوسيطة في TensorArray ، لكن XLA يدعم فقط TensorArray s TensorArray .

الحل : تحتاج جميع حلقات while المترجمة إلى تعيين معلمة maximum_iterations إلى قيمة ثابتة معروفة في وقت الترجمة ، أو تعطيل backpropagation باستخدام back_prop=False .

tf.TensorArray ديناميكية

الكتابة في tf.TensorArray(..., dynamic_size=True) غير قابلة للترجمة مع XLA ، حيث تتطلب هذه الكتابة عددًا غير معروف من عمليات إعادة التخصيص عندما يتجاوز الصفيف الحد الأصلي.

الحل : قدم ارتباطًا معروفًا ثابتًا لمصفوفاتك.

توليد عدد عشوائي

تتجاهل XLA حاليًا بذور TF لعمليات عشوائية. يؤثر هذا على عمليات TF العشوائية ذات الحالة ، مثل tf.random.normal أو tf.nn.dropout . سوف تتصرف XLA كما لو تم تصنيف المجموعة ببذرة فريدة جديدة في كل شوط. لا ينطبق هذا القيد على العمليات العشوائية عديمة الحالة.