Controla cómo se limpian los recursos de TensorFlow cuando ya no son necesarios.
Todos los recursos asignados durante una EagerSession
se eliminan cuando se cierra la sesión. Para evitar errores de falta de memoria, también se recomienda limpiar esos recursos durante la sesión. Por ejemplo, ejecutar n operaciones en un bucle de iteraciones asignará un mínimo de n*m recursos mientras que, en la mayoría de los casos, solo se siguen utilizando los recursos de la última iteración.
Las instancias EagerSession
pueden recibir notificaciones de diferentes maneras cuando ya no se hace referencia a los objetos de TensorFlow, para que puedan proceder a la limpieza de cualquier recurso que posean.
Métodos heredados
Valores de enumeración
pública estática final EagerSession.ResourceCleanupStrategy IN_BACKGROUND
Supervise y elimine los recursos no utilizados de un nuevo hilo que se ejecuta en segundo plano.
Este es el enfoque más confiable para limpiar los recursos de TensorFlow, a costa de iniciar y ejecutar un subproceso adicional dedicado a esta tarea. Cada instancia EagerSession
tiene su propio hilo, que se detiene solo cuando se cierra la sesión.
Esta estrategia se utiliza de forma predeterminada.
público estático final EagerSession.ResourceCleanupStrategy ON_SAFE_POINTS
Supervise y elimine los recursos no utilizados de los subprocesos existentes, antes o después de que completen otra tarea.
Los recursos no utilizados se liberan cuando una llamada a la biblioteca de TensorFlow llega a un punto seguro para su limpieza. Esto se hace de forma sincrónica y puede bloquear durante un breve período de tiempo el hilo que activó esa llamada.
Esta estrategia debe usarse solo si, por alguna razón, no se debe asignar ningún subproceso adicional para la limpieza. De lo contrario, se debería preferir IN_BACKGROUND
.
público estático final EagerSession.ResourceCleanupStrategy ON_SESSION_CLOSE
Solo elimine recursos cuando la sesión esté cerrada.
Todos los recursos asignados durante la sesión permanecerán en la memoria hasta que la sesión se cierre explícitamente (o mediante la técnica tradicional de "probar con recursos"). No se intentará ninguna tarea adicional para la limpieza de recursos.
Esta estrategia puede provocar errores de falta de memoria y no se recomienda su uso, a menos que el alcance de la sesión se limite a ejecutar solo una pequeña cantidad de operaciones.