หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

ปัญหาที่ทราบ

การคอมไพล์ด้วย XLA สามารถปรับปรุงประสิทธิภาพของโปรแกรมของคุณได้อย่างมาก แต่การทำงานร่วมกันของ TensorFlow นั้นมีมุมที่คมชัดอยู่หลายมุม

ไม่รองรับ TensorArray TF / XLA interconversion

ข้อความแสดงข้อผิดพลาด : ไม่ได้ใช้ Support for TensorList crossing the XLA/TF boundary is not implemented

XLA รองรับ tf.TensorArray อย่างไรก็ตาม interconversion ระหว่าง TF และ XLA การแสดงจะยังไม่ได้ใช้ ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อใช้ TensorArray ภายในบล็อกที่คอมไพล์แล้ว แต่อนุพันธ์ถูกนำออกไปข้างนอก

วิธีแก้ปัญหา : รวบรวมขอบเขตนอกสุดซึ่งรับอนุพันธ์

TensorFlow ในขณะที่ลูปต้องถูก จำกัด ขอบเขต (หรือปิดการใช้งานแบ็คดรอป)

ข้อความแสดงข้อผิดพลาด : การ 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 ในขณะที่ ลูปที่ สร้างขึ้นโดยใช้ tf.while_loop สนับสนุน backpropagation โดยการรวบรวมผลลัพธ์ระดับกลางทั้งหมดใน TensorArray แต่ XLA รองรับเฉพาะ TensorArray ขอบเขตเท่านั้น

วิธีแก้ปัญหา : คอมไพล์ทั้งหมดในขณะที่ลูปต้องมีพารามิเตอร์ maximum_iterations ตั้งค่าเป็นค่าคงที่ที่ทราบในเวลาคอมไพล์หรือ backpropagation ปิดใช้งานโดยใช้ back_prop=False

ไม่รองรับ Dynamic tf.TensorArray

เขียนลงใน tf.TensorArray(..., dynamic_size=True) ไม่สามารถ tf.TensorArray(..., dynamic_size=True) กับ XLA ได้เนื่องจากการเขียนดังกล่าวต้องการจำนวนการจัดสรรใหม่ที่ไม่รู้จักเมื่ออาร์เรย์เกินขอบเขตเดิม

วิธีแก้ปัญหา : ระบุขอบเขตที่รู้จักแบบคงที่กับอาร์เรย์ของคุณ

การสร้างตัวเลขสุ่มละเว้นเมล็ดพันธุ์ TF

ปัจจุบัน XLA ละเว้นเมล็ดพันธุ์ TF เป็นการดำเนินการแบบสุ่ม สิ่งนี้มีผลต่อการดำเนินการแบบสุ่ม TF แบบ stateful เช่น tf.random.normal หรือ tf.nn.dropout XLA จะทำงานราวกับว่าการคอมไพล์นั้นได้รับการเพาะเมล็ดด้วยเมล็ดพันธุ์ใหม่ที่ไม่ซ้ำกันในแต่ละครั้ง ข้อ จำกัด นี้ใช้ไม่ได้กับการสุ่มแบบไร้สัญชาติ

TensorFlow Asserts จะถูกละเว้น

การยืนยันที่สร้างขึ้นโดยใช้ tf.Assert และฟังก์ชันที่คล้ายกันคือ noops เมื่อคอมไพล์เป็น XLA แม้ว่าโดยหลักการแล้วการสนับสนุนการยืนยันที่เหมาะสมจะเป็นไปได้ แต่ก็อาจทำให้การเพิ่มประสิทธิภาพบางอย่างเป็นไปไม่ได้ (ส่วนใหญ่จะเป็นการหลอมรวมบัฟเฟอร์ที่ใช้ในการยืนยัน)