tensorflow和基于tensorflow的keras运行时会自动占用所有gpu,为了限制程序的gpu占用量,可以指定程序只使用某一个gpu,参考:
https://blog.csdn.net/A632189007/article/details/77978058
其中可以在程序开头位置加入语句
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
来指定只使用第一块gpu,或者
os.environ["CUDA_VISIBLE_DEVICES"] = "0, 2" # 使用第一, 三块GPU
可以用语句
watch -n 1 nvidia-smi # 1秒钟刷新一次
来查看gpu使用情况。
之前我加入以上语句一直没有生效,最后发现原因是使用pycharm远程开发连接服务器的时候,虽然点了autoupload,但却没有自动上传,因此改了代码也没有同步 。所以还是取消自动更新,以后改完代码手动upload更稳妥。
改正之后,上面的语句是可以正确执行的,可以看到我的进程只占用了GPU0,而且是占用了GPU0的所有剩余容量