刚开始使用实验室的服务器网络训练时,有这样的现象:
能看到,只使用单个GPU跑程序,但三块显卡的显存都被占用。
这是因为TensorFlow训练时默认占用所有GPU的显存。引自TF官网:
By default, TensorFlow maps nearly all of the GPU memory of all GPUs (subject to CUDA_VISIBLE_DEVICES) visible to the process.
这样如果有人想使用其他两个GPU跑程序,就会因为显存不足而无法运行。
所以需要人为指定显存占用率或指定使用单张显卡。
根据 TF官网tutorial部分的Using GPUs,可以总结三种方法:
第一种是使用
allow_growth