停止tensorflow并清除gram

停止tensorflow并清除gram,tensorflow,gpu,nvidia,Tensorflow,Gpu,Nvidia,我的GPU的风扇有问题。因此,运行tensorflow一段时间后,GPU的温度会过高。在gpu过热之前,我无法完成训练。因此,我编写了一个脚本来检测温度,并尝试暂停程序,让gpu冷却下来。代码如下(对于测试,阈值设置为45): 我将tensorflow的代码包装在一个文件中,并在另一个文件中调用它: result = 1000 restore = False path = None batches = None while result != 1: result, path, batch

我的GPU的风扇有问题。因此,运行tensorflow一段时间后,GPU的温度会过高。在gpu过热之前,我无法完成训练。因此,我编写了一个脚本来检测温度,并尝试暂停程序,让gpu冷却下来。代码如下(对于测试,阈值设置为45):

我将tensorflow的代码包装在一个文件中,并在另一个文件中调用它:

result = 1000
restore = False
path = None
batches = None
while result != 1:
    result, path, batches = main(FLAGS,restore, path, batches)
    if result == -1:
        import gc
        gc.collect()
        time.sleep(300)
        restore = True
现在,当温度过高时,程序可以暂停,但gpu仍然被占用,无法冷却。所以我想知道如何停止tensorflow并清除vgram

温度过高时,程序暂停:

但gpu仍被占用,无法冷却:

TensorFlow仅在程序退出后释放所有GPU内存,这就是为什么您看到内存没有释放。不过,我认为暂停会有所帮助,这会阻止GPU全速工作(149W中只有73个正在使用,如图所示);如果不立即冷却,可能会暂停更长时间。

最后,通过添加风扇来冷却GPU来解决此问题。

GPU不应过热。我猜你把一个没有风扇的特斯拉插进了一个不是为它设计的系统。
result = 1000
restore = False
path = None
batches = None
while result != 1:
    result, path, batches = main(FLAGS,restore, path, batches)
    if result == -1:
        import gc
        gc.collect()
        time.sleep(300)
        restore = True