このページは 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.TensorArray 。ただし、TF表現とXLA表現の間の相互変換はまだ実装されていません。このエラーは、 TensorArrayがコンパイルされたブロック内で使用されているが、導関数が外部で使用されている場合によく発生します。

回避策:導関数を取得している最も外側のスコープをコンパイルします。

TensorFlow whileループを制限する必要がある(または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ながらループは使用して作成したtf.while_loop中ですべての中間結果を蓄積することにより、サポートバックプロパゲーションをTensorArray囲まれた、しかしXLAのみをサポートしていTensorArray秒。

回避策:コンパイルされたすべてのwhileループでは、 maximum_iterationsパラメーターをコンパイル時に既知の定数値に設定するか、 back_prop=Falseを使用してバックプロパゲーションを無効にするback_prop=Falseます。

動的tf.TensorArrayはサポートされていません

tf.TensorArray(..., dynamic_size=True)書き込みは、XLAでコンパイルできません。このような書き込みでは、配列が元の境界を超えたときに不明な数の再割り当てが必要になるためです。

回避策:静的に既知のバインドを配列に提供します。

乱数生成はTFシードを無視します

XLAは現在、ランダム操作に対するTFシードを無視しています。これは、 tf.random.normaltf.nn.dropoutなどのステートフルTFランダム操作に影響します。 XLAは、実行ごとにコンパイルに新しい一意のシードがシードされたかのように動作します。この制限は、ステートレスランダム操作には適用されません。

TensorFlowアサートは無視されます

tf.Assertおよび同様の関数を使用して作成されたアサーションは、XLAにコンパイルされた場合はnoopsです。適切なアサーションサポートは原則として可能ですが、特定の最適化が不可能になる場合があります(主にアサーションが実行されるバッファーを融合します)。