Controla cómo se limpian los recursos de TensorFlow cuando ya no se necesitan.
Todos los recursos asignados durante una EagerSession
se eliminan cuando se cierra la sesión. Para evitar errores de memoria insuficiente, también se recomienda encarecidamente limpiar esos recursos durante la sesión. Por ejemplo, la ejecución de n operaciones en un bucle de m 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.
EagerSession
casos pueden ser notificados de diferentes maneras cuando los objetos TensorFlow ya no se hace referencia, para que puedan proceder a la limpieza de todos los recursos de su propiedad.
Métodos heredados
Valores de enumeración
public static final de 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 hilo adicional dedicado a esta tarea. Cada EagerSession
instancia tiene su propio hilo, que se detiene sólo cuando se cierra la sesión.
Esta estrategia se utiliza de forma predeterminada.
public static final de 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 la limpieza. Esto se hace de forma sincrónica y puede bloquear durante un corto período de tiempo el hilo que desencadenó 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, IN_BACKGROUND
debe preferirse.
public static final de 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 `try-with-resource`). No se intentará ninguna tarea adicional para la limpieza de recursos.
Esta estrategia puede dar lugar a errores de memoria insuficiente 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.