當我通常從命令行運行python腳本時,例如python test.py
,GPU內存將在腳本完成後立即釋放。 在這個test.py
腳本中,我只是加載了keras構建的模型來評估和預測一些數據。沒有培訓過程。但是,如果我打開我的'spyder',並在'spyder'中運行此腳本,結果會出現在'ipython'部分,但是隨後我從命令行鍵入nvidia-smi
,GPU內存不會釋放。 所以,我試過的是關閉這個'ipython'內核並開始一個新的。但是我所有其他的變數都會丟失。 'spyder'的model.evaluate(x, y)
之後有沒有體面的方式釋放GPU內存? 下面是一些屏幕截圖: 如何在spyder中釋放ipython中的keras中的GPU資源?
0
A
回答
1
通常情況下,tensorflow後端將保留在GPU上的所有內存。它可能不會真正使用所有的內存,但是它會被其他程序佔用,直到tensorflow後端被終止。因此,在nvidia-smi
中,您將看到內存不會釋放,甚至tensorflow已經釋放了其框架中的前一個內存。
+0
,所以我怎麼能釋放記憶呢?因爲我從ipython運行了一些測試命令,並且還從命令行運行了一些其他腳本。但是如果tensorflow後端不釋放內存,那麼我不能從命令行運行其他腳本。有什麼建議麼? – StayFoolish
+0
是的,你可以限制張量記憶。請檢查[此鏈接](https://github.com/fchollet/keras/issues/1538) – Van
相關問題
- 1. 如何釋放Spring bean中的資源?
- 2. 在C#中釋放資源
- 3. 如何在spyder python中顯示ipython iframe?
- 4. IPython在Spyder中不可用
- 5. 如何釋放資源?
- 6. IDE如何釋放資源?
- 7. 釋放Objective-C中的靜態資源
- 8. 釋放應用程序中的資源?
- 9. 已釋放createjs中使用的資源
- 10. 在Windows和unix中釋放資源
- 11. 在GPU上的Direct2D中存儲資源
- 12. Python - IntelliJ中的Ipython控制檯,如Spyder
- 13. 如何以及何時釋放指針中的資源
- 14. 如何釋放HttpPostedFileBase使用的資源?
- 15. 如何釋放進程的資源
- 16. 在Spyder iPython解釋器中抑制ipdb輸出
- 17. GC如何釋放C#中的管理資源
- 18. 從線程中釋放資源
- 19. HttpClient - 如何在Java 7中自動釋放資源
- 20. 如何避免在C++中自動釋放資源?
- 21. 如何在RMI調用中釋放服務器端資源?
- 22. 如何在iPhone應用程序中釋放這些資源?
- 23. 釋放OpenSSL的資源:SSL_CTX_free
- 24. 如何釋放gpu內存?
- 25. SFML釋放資源
- 26. Php資源釋放
- 27. IPython中的cd命令與Spyder
- 28. 如何在.EXE中放置資源?
- 29. 如何防止NSWindow釋放資源?
- 30. 如何強制釋放資源?
嘗試運行'gc.collect()' – DJK
@ djk47463,這個'gc'來自哪裏?哪個模塊? – StayFoolish
該模塊被命名爲[gc](https://docs.python.org/2/library/gc.html),它是一個垃圾收集器,我相信它附帶的Python安裝 – DJK