Yardım Kaggle üzerinde TensorFlow ile Büyük Bariyer Resifi korumak Meydan Üyelik

Bilinen Sorunlar

XLA ile derleme, programlarınızın performansını büyük ölçüde artırabilir, ancak TensorFlow birlikte çalışmasının bilinen birkaç keskin köşesi vardır.

tf.Variable farklı bir cihazda

Hata mesajı: INVALID_ARGUMENT: Trying to access resource <Variable> (defined @ <Loc>) located in device CPU:0 from device GPU:0

XLA küme tam olarak bir cihaz üzerinde çalışan ve okuma veya yazma olamaz tf.Variable farklı bir cihazda bulunan. Genellikle bu hata mesajı, değişkenin başlangıçta doğru cihaza yerleştirilmediğini gösterir. Hata mesajı, sorunlu değişkenin konumunu tam olarak belirtmelidir.

TensorArray TF/XLA interconversion desteklenmiyor

Hata mesajı: Support for TensorList crossing the XLA/TF boundary is not implemented .

XLA destekler tf.TensorArray . Ancak, TF ve XLA temsiller arasındaki henüz uygulanmadı. Bu hata genellikle ortaya TensorArray derlenmiş blok içinde kullanılır, ancak türev dışarı alınır.

Çözüm: türev alma en dış kapsam derleme.

Döngülerin sınırlandırılması (veya backprop'un devre dışı bırakılması) gerekirken TensorFlow

Hata mesajı: 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 sırasında döngüleri kullanılarak oluşturulan tf.while_loop bir bütün ara sonuçları biriktirerek destek geri yayılım TensorArray ancak XLA sadece sınırlanmış destekler TensorArray s.

Çözüm: döngüler için gereken ya varken derlenmiþ maximum_iterations derleme zamanında bilinen sabit bir değere set parametresi veya geri yayılım kullanılarak devre dışı back_prop=False .

Dinamik tf.TensorArray desteklenmez

İçine yazıyor tf.TensorArray(..., dynamic_size=True) dizi orijinal ciltli aştığında bu tür yazma reallocations bilinmeyen sayıda gerektiren olarak XLA ile derlenebilir değildir.

Çözüm: statik Dizilerinize bir bağlı bilinen sağlarlar.

Rastgele sayı üretimi TF tohumunu yok sayar

XLA şu anda rastgele işlemler için TF tohumlarını yok sayıyor. Bu gibi, durum bilgisi olan TF rastgele işlemleri etkileyen tf.random.normal veya tf.nn.dropout . XLA, aynı işlem içindeki her çalıştırmada derleme yeni bir benzersiz tohumla tohumlanmış gibi davranacaktır (işlemin ilk çalıştırması her zaman aynı sonucu verecektir).

Çözüm: kullanmak önerilir RNG'ler gibi tf.random.stateless_uniform veya tf.random.Generator doğrudan.