完畢後的記憶要限制使用內存我讀How to prevent tensorflow from allocating the totality of a GPU memory?,並試圖將此代碼:解除分配蟒蛇tensorflow工作簿執行
# 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))
這些命令沒有釋放內存,但內存卻沒有代碼完成後取消分配。此問題描述: https://github.com/tensorflow/tensorflow/issues/3701建議的修復程序是更新驅動程序 「將GPU驅動程序從352.79升級到367.35(最新的)後,問題消失。 「 不幸的是,我無法更新到最新版本的驅動程序。此問題是否已解決?
我還考慮將可用內存限制在碼頭容器中。 閱讀https://devblogs.nvidia.com/parallelforall/nvidia-docker-gpu-server-application-deployment-made-easy/狀態「容器可以被限制爲系統上有限的一組資源(例如一個CPU內核和1GB內存)」,但內核目前不支持這個,在這裏我嘗試向新的docker實例添加1GB的內存:
nvidia-docker run -m 1024m -d -it -p 8889:8889 -v /users/user1234/jupyter:/notebooks --name tensorflow-gpu-1GB tensorflow/tensorflow:latest-cpu
但這並不可能出現如收到警告: 警告:您的內核不支持互換極限能力,內存的限制沒有交換」
tensorflow python工作簿完成後是否有命令釋放內存?
Update
殺死/重新啓動筆記本電腦後,將取消分配內存。但如何在筆記本內完成後釋放內存。
但是關閉(終止/終止)筆記本內核後內存是否保持分配? Oo – sygi
@sygi請參閱更新 –
我懷疑這是不可能的。像內存分配器這樣的結構是process-global('process_state.h'),並且查看'common_runtime/bfc_allocator.cc',看起來像釋放例程保存分配的內存以備將來使用 –