このページは Cloud Translation API によって翻訳されました。
Switch to English

EagerSession.ResourceCleanupStrategy

public static final enum EagerSession.ResourceCleanupStrategy

TensorFlowリソースが不要になったときにクリーンアップする方法を制御します。

EagerSession中に割り当てられたすべてのリソースは、セッションが閉じられるときに削除されます。メモリ不足エラーを防ぐために、セッション中にこれらのリソースをクリーンアップすることも強くお勧めします。たとえば、m回の反復のループでn回の操作を実行すると、最小でn * mのリソースが割り当てられますが、ほとんどの場合、最後の反復のリソースのみがまだ使用されています。

EagerSessionインスタンスは、TensorFlowオブジェクトが参照されなくなったときにさまざまな方法で通知されるため、所有しているリソースのクリーンアップに進むことができます。

継承されたメソッド

列挙値

public static final EagerSession.ResourceCleanupStrategy IN_BACKGROUND

バックグラウンドで実行されている新しいスレッドから未使用のリソースを監視して削除します。

これは、TensorFlowリソースをクリーンアップするための最も信頼性の高い方法ですが、このタスク専用の追加のスレッドを開始して実行します。各EagerSessionインスタンスには独自のスレッドがあり、セッションが閉じられたときにのみ停止します。

この戦略はデフォルトで使用されます。

public static final EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS

未使用のリソースを監視して、既存のスレッドが別のタスクを完了する前または完了した後に削除します。

TensorFlowライブラリの呼び出しがクリーンアップの安全なポイントに到達すると、未使用のリソースが解放されます。これは同期的に行われ、その呼び出しをトリガーしたスレッドが短期間ブロックする可能性があります。

この戦略は、何らかの理由でクリーンアップのために追加のスレッドを割り当てる必要がない場合にのみ使用してください。それ以外の場合は、 IN_BACKGROUNDます。

public static final EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE

セッションを閉じたときにのみリソースを削除します。

セッション中に割り当てられたすべてのリソースは、セッションが明示的に閉じられるまで(または従来の「try-with-resource」手法を使用して)メモリに残ります。リソースのクリーンアップのための追加のタスクは試行されません。

この戦略はメモリ不足エラーにつながる可能性があり、セッションのスコープが少量の操作のみを実行するように制限されていない限り、その使用は推奨されません。