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 é encerrada. 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 mi iterações alocará um mínimo de n*m recursos enquanto, na maioria dos casos, apenas os recursos da última iteração ainda estarã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 de sua propriedade.
Métodos herdados
Valores de Enum
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 recursos do TensorFlow, ao custo de iniciar e executar um thread adicional dedicado a essa tarefa. Cada instância EagerSession
possui seu próprio thread, que é interrompido somente quando a sessão é fechada.
Esta 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 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 thread que acionou a chamada.
Esta estratégia deve ser usada somente se, por algum motivo, nenhum thread adicional for 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 de limpeza de recursos será tentada.
Esta 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.