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
int final | compararTo (E arg0) |
interno | compareTo (objeto arg0) |
booleano final | é igual (objeto arg0) |
aula final<E> | getDeclaringClass () |
int final | código hash () |
sequência final | nome () |
int final | ordinal () |
Corda | para sequenciar () |
estático <T estende Enum<T>> T | valorOf (Classe<T> arg0, String arg1) |
boleano | é igual (objeto arg0) |
aula final<?> | getClass () |
interno | código hash () |
vazio final | notificar () |
vazio final | notificar todos () |
Corda | para sequenciar () |
vazio final | espere (long arg0, int arg1) |
vazio final | espere (arg0 longo) |
vazio final | espere () |
abstrato int | compareTo (E estende Enum<E> arg0) |
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.