EagerSession.ResourceCleanupStrategy

public static final enum EagerSession.ResourceCleanupStrategy

Controla como os recursos do TensorFlow são limpos quando não são mais necessários.

Todos os recursos alocados durante uma EagerSession são excluídos quando a sessão é fechada. Para evitar erros de falta de memória, também é altamente recomendável limpar esses recursos durante a sessão. Por exemplo, a execução de n operações em um loop de m iterações alocará um mínimo de n * m recursos, enquanto na maioria dos casos, apenas os recursos da última iteração ainda estão sendo usados.

EagerSession instâncias EagerSession podem ser notificadas de diferentes maneiras quando os objetos do TensorFlow não estão mais sendo referidos, para que possam prosseguir com a limpeza de todos os recursos de sua propriedade.

Métodos herdados

Valores Enum

public static final EagerSession.ResourceCleanupStrategy IN_BACKGROUND

Monitore e exclua recursos não utilizados de um novo encadeamento em execução em segundo plano.

Esta é a abordagem mais confiável para limpar os recursos do TensorFlow, ao custo de iniciar e executar um thread adicional dedicado a essa tarefa. Cada instância EagerSession tem seu próprio encadeamento, que é interrompido apenas quando a sessão é fechada.

Esta estratégia é usada por padrão.

public static final EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS

Monitore e exclua recursos não utilizados de threads existentes, antes ou depois de concluírem outra tarefa.

Os recursos não utilizados são liberados quando uma chamada para a biblioteca do TensorFlow atinge um ponto seguro para limpeza. Isso é feito de forma síncrona e pode bloquear por um curto período de tempo o encadeamento que acionou essa chamada.

Essa estratégia deve ser usada apenas se, por alguns motivos, nenhum encadeamento adicional deve ser alocado para limpeza. Caso contrário, IN_BACKGROUND deve ser preferido.

public static final EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE

Exclua recursos apenas quando a sessão for encerrada.

Todos os recursos alocados durante a sessão permanecerão na memória até que a sessão seja explicitamente fechada (ou através da técnica tradicional `try-with-resource`). Nenhuma tarefa extra para limpeza de recursos será tentada.

Essa estratégia pode levar a erros de falta de memória e seu uso não é recomendado, a menos que o escopo da sessão seja limitado para executar apenas uma pequena quantidade de operações.