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, executar 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.
As instâncias EagerSession
podem ser notificadas de diferentes maneiras quando os objetos do TensorFlow não estão mais sendo referenciados, para que possam prosseguir com a limpeza de todos os recursos que possuíam.
Métodos Herdados
Valores de enumeração
público estático final EagerSession.ResourceCleanupStrategy IN_BACKGROUND
Monitore e exclua recursos não utilizados de um novo thread em execução em segundo plano.
Essa é a abordagem mais confiável para limpar os recursos do TensorFlow, com o custo de iniciar e executar um thread adicional dedicado a essa tarefa. Cada instância EagerSession
tem seu próprio thread, que é interrompido apenas quando a sessão é fechada.
Essa estratégia é usada por padrão.
público estático final EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS
Monitore e exclua recursos não utilizados de threads existentes, antes ou depois de concluir 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 somente se, por algum motivo, nenhum thread adicional deve ser alocado para limpeza. Caso contrário, IN_BACKGROUND
deve ser preferido.
público estático final EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE
Exclua recursos apenas quando a sessão for fechada.
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 a executar apenas uma pequena quantidade de operações.