栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

训练模型+tmux+自动选择gpu ID的一种方案

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

训练模型+tmux+自动选择gpu ID的一种方案

使用场景:

        我建立了一系列的tmux会话,他们的名字是gpu0,gpu1,gpu2等等。我调参的时候,每个程序占用一个gpu,我需要在程序里面写明白使用gpu 0,

os.environ['CUDA_VISIBLE_DEVICES']=f"{gpu}"

或者是

CUDA_VISIBLE_DEVICES=0 python train.py

然后把这个程序放到tmux名字是gpu0的会话里面用。这里存在一个冗余的地方,就是tmux已经指定了gpu id,程序再指定一次。

现在我通过下面的方案,去掉了修改程序内gpu ID的步骤。

通过os.system()执行下面的语句,能够得到当前tmux会话的名称,众所周知,这样得到的结果直接print了,无法用python获取。所以,我将结果保存到文本文件里面,然后用python读取temp.txt这个文件。

tmux display-message -p '#S'

tmux display-message -p '#S' >temp.txt

然后我就可以根据获取到的gpu id,动态的修改程序所使用的id。

os.environ['CUDA_VISIBLE_DEVICES']=f"{gpu}"

需要注意的几点:

  1. 在非tmux会话下运行,也会显示最后一次启动tmux会话的名称(如果有人有其他方法解决,欢迎留言)
  2. 修改gpu ID的语句要在使用gpu之前;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/650250.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号