如何在spyder的ipython中释放keras中的GPU资源?

如何在spyder的ipython中释放keras中的GPU资源?,python,ipython,keras,spyder,tensorflow-gpu,Python,Ipython,Keras,Spyder,Tensorflow Gpu,当我通常从命令行运行python脚本时,例如,python test.py,GPU内存将在脚本完成后释放。 在这个test.py脚本中,我只是加载了一个keras构建的模型来评估和预测一些数据。没有培训过程。 但是,如果我打开我的'spyder',并在'spyder'中运行此脚本,结果会出现在'ipython'部分,但是我从命令行键入nvidia smi,GPU内存不会释放。 所以,我尝试的是关闭这个“ipython”内核并启动一个新的内核。但我所有的其他变量都将丢失。在“spyder”中评估(

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

从“spyder”运行脚本之前和之后:

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

尝试运行
gc.collect()
@djk47463,这
gc
是从哪里来的?Whichi模块?该模块名为,它是一个垃圾收集器,我相信它是随python安装而来的,那么我如何释放内存呢?因为我从ipython运行了一些测试命令,也从命令行运行了一些其他脚本。但是如果tensorflow后端没有释放内存,那么我就不能从命令行运行其他脚本。有什么建议吗?是的,你可以限制tensorflow的记忆。请查收