Desasignar la memory después de la ejecución del libro de trabajo tensorflow de python

Para limitar el uso de la memory, leí ¿Cómo evitar que tensorflow distribuya la totalidad de una memory GPU? y probé este código:

# Assume that you have 12GB of GPU memory and want to allocate ~4GB: gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) 

Estos commands liberaron memory pero la memory no se desasignó después de completar el código. Este problema describe: https://github.com/tensorflow/tensorflow/issues/3701 una solución sugerida es actualizar el controller "Después de actualizar el controller de la GPU de 352.79 a 367.35 (el más nuevo), el problema desapareció. "Desafortunadamente no estoy en position de actualizar a la última versión del controller. Se ha resuelto este problema.

También consideré limitar la memory disponible al contenedor de docker. Leyendo https://devblogs.nvidia.com/parallelforall/nvidia-docker-gpu-server-application-deployment-made-easy/ states "Los contenedores pueden estar limitados a un set limitado de resources en un sistema (por ejemplo, un núcleo de CPU y 1GB de memory) "pero el kernel no es compatible con esto, aquí bash agregar 1GB de memory a la nueva instancia de docker:

 nvidia-docker run -m 1024m -d -it -p 8889:8889 -v /users/user1234/jupyter:/notebooks --name tensorflow-gpu-1GB tensorflow/tensorflow:latest-cpu 

Pero esto no parece posible como advertencia de recepción: ADVERTENCIA: su kernel no admite capacidades de límite de intercambio, memory limitada sin intercambio. "

¿Existe un command para liberar memory después de la finalización del libro de trabajo de tensorflow python?

 Update 

Después de matar / reiniciar el notebook, la memory se desasigna. Pero cómo liberar memory una vez completada en el portátil.

Las notebooks Ipython y jupyter no liberarán memory a less que use del o xdel en sus objects:

https://ipython.org/ipython-doc/3/interactive/magics.html

% xdel: elimine una variable, tratando de borrarla de cualquier lugar donde la maquinaria de IPython tenga references. De forma pnetworkingeterminada, esto usa la identidad del object nombrado en el espacio de nombres de usuario para eliminar las references que se encuentran bajo otros nombres. El object también se elimina del historial de salida.

Intereting Posts