如何在spyder中的ipython中发布keras中的GPU资源?

时间:2017-08-25 01:34:09

标签: python ipython keras spyder tensorflow-gpu

当我通常从命令行运行python脚本时,例如python test.py,GPU内存将在脚本完成后立即释放。 在这个test.py脚本中,我只是加载了一个keras构建的模型来评估和预测一些数据。没有培训过程。 但是,如果我打开'spyder'并在'spyder'中运行此脚本,结果会出现在'ipython'部分,但是然后我从命令行输入nvidia-smi,GPU内存不会被释放。 所以,我尝试的是关闭这个'ipython'内核并开始一个新内核。但是我的所有其他变量都将丢失。在'spyder'model.evaluate(x, y)之后有没有一种可靠的释放GPU内存的方法? 以下是一些屏幕截图: enter image description here

从'spyder'运行脚本之前和之后: enter image description here

1 个答案:

答案 0 :(得分:1)

通常,tensorflow后端将保留GPU上的所有内存。它可能并不真正使用所有内存,但它将被其他程序使用,直到tensorflow后端终止。因此,在nvidia-smi中,即使tensorflow已经释放了其框架中的先前内存,您也会看到内存不会释放。